Python 有可能在从詹金斯开始的流浪者盒子中运行测试套件吗?
目前,我们的开发人员都使用VirtualBox虚拟机的克隆,该虚拟机配置了一组特定的软件,我们希望将持续集成引入我们的开发堆栈中 我们正在考虑使用Jenkins,最好将其配置为执行以下操作:Python 有可能在从詹金斯开始的流浪者盒子中运行测试套件吗?,python,jenkins,continuous-integration,virtual-machine,vagrant,Python,Jenkins,Continuous Integration,Virtual Machine,Vagrant,目前,我们的开发人员都使用VirtualBox虚拟机的克隆,该虚拟机配置了一组特定的软件,我们希望将持续集成引入我们的开发堆栈中 我们正在考虑使用Jenkins,最好将其配置为执行以下操作: 克隆我们用于开发的基本VM(因为它经常更新) 启动此VM的一个实例 将脚本复制/下载到实例上 执行脚本,它将安装我们的开发环境并运行测试 收集测试结果 报告测试是否成功 我很确定我们可以让1-4工作,这是我们关心的第5步和第6步 这是可以实现的吗?如果是这样的话,怎么做?当然有可能,我们已经有了一个非常类似
这是可以实现的吗?如果是这样的话,怎么做?当然有可能,我们已经有了一个非常类似的设置 收集结果 为了收集您可以利用的测试结果,即在与主机同步的目录(本例中Jenkins正在运行的目录)中对VM运行测试 报告测试是否成功 我相信你知道Jenkins进程只需要退出非零就可以失败。我们设置测试的方式如下:
vagrant ssh -c 'cd /synced-folder/ && grunt test-report --force && npm test'
首先,我们使用数据收集结果。我们刚刚生成了XUnitXML报告(然后作为构建后操作发布)。请注意,我们
——强制执行,这样即使测试失败,我们也可以收集结果。然后,我们使用npm test
运行测试。npm测试
过程的退出代码将是用于Jenkins作业的代码,因此如果失败,那么Jenkins作业也将失败。有一组Jenkins插件正是为了处理这种情况而设计的
特别是,Jenkins有一个从执行器的基本概念,它负责为您复制文件、远程触发和收集结果(这实际上是Jenkins的核心功能——处理跨多台机器运行大量计划任务的管理开销)。除了启动从机(在您的场景中提供了Vagrant)并告诉Jenkins您的构建应该在特定的从机上运行之外,您实际上不需要做任何事情
以下是文档的相关入口点: