
[英]How to go about converting a test-suite from unittest to pytest?
[英]Is it possible to run a test-suite in a vagrant box started from Jenkins?
当前,我们的开发人员都使用VirtualBox VM的克隆,该克隆已配置了一组特定的软件,并且我们希望将Continuous Integration引入到我们的开发堆栈中。
我们正在考虑使用Jenkins,并且最好将其配置为执行以下操作:
我很确定我们可以使1-4工作,这是我们关心的步骤5和6。
这可以实现吗? 如果是这样,怎么办?
当然有可能,我们已经建立了非常相似的设置。
收集结果
为了收集测试结果,您可以利用Vagrant的同步文件夹 ,即在VM上的目录中运行测试,该目录已同步到您的主机(在这种情况下,Jenkins在其中运行)。
报告测试是否成功
正如我确定的那样,您知道Jenkins进程只需退出非零值即可失败。 我们设置测试的方式如下:
vagrant ssh -c 'cd /synced-folder/ && grunt test-report --force && npm test'
首先,我们使用Grunt收集结果。 我们只是生成了xunit XML报告(然后将其发布为构建后操作)。 请注意,我们--force
此操作,以便即使测试失败也可以收集结果。 然后,我们使用npm test
。 npm test
过程的退出代码将是用于Jenkins作业的退出代码,因此如果失败,则Jenkins作业也会退出。
有很多Jenkins插件专门设计用来处理这种情况。
特别是,Jenkins具有从属执行程序的基本概念,并为您处理文件的复制,远程触发和结果的收集(这实际上是Jenkins的核心功能-处理运行大量计划任务的管理开销跨很多机器)。 除了启动从属计算机(在您的方案中由Vagrant提供)并告诉Jenkins您的构建应在该特定从属服务器上运行之外,您实际上不需要执行任何其他操作。
这是文档的相关入口点:
https://wiki.jenkins-ci.org/display/JENKINS/Distributed+builds
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.