能否在从Jenkins启动的vagrant盒中运行测试套件?

2024-06-16 13:46:17 发布

您现在位置:Python中文网/ 问答频道 /正文

目前我们的开发人员都使用virtualboxvm的克隆,它配置了一套特定的软件,我们希望在我们的开发堆栈中引入持续集成。在

我们正在考虑使用Jenkins,最好将其配置为执行以下操作:

  1. 克隆我们用于开发的基本虚拟机(因为它经常更新)
  2. 启动此VM的实例
  3. 将脚本复制/下载到实例上
  4. 执行脚本,它将安装我们的开发环境并运行测试
  5. 收集测试结果
  6. 测试是否成功的报告

我很确定我们可以让1-4步工作,我们关心的是第5步和第6步。在

这能实现吗?如果是,怎么办?在


Tags: 实例脚本软件环境开发人员堆栈报告vm
2条回答

我们也有类似的地方。在

收集结果

为了收集测试结果,您可以利用Vagrant's synced folders,也就是说,在虚拟机上运行测试,该目录与主机同步(本例中Jenkins正在运行)。在

报告测试是否成功

我相信你知道,Jenkins进程只需要退出非零,就可以失败。我们设置测试的方法如下:

vagrant ssh -c 'cd /synced-folder/ && grunt test-report  force && npm test'

首先我们使用Grunt收集结果。我们生成了一个XML报告。请注意,我们 force这样即使测试失败,我们也会收集结果。然后我们使用npm test运行测试。npm test进程的退出代码将是用于Jenkins作业的代码,因此如果失败,Jenkins作业也将使用该代码。在

有很多Jenkins插件正是为了处理这种情况而设计的。在

特别是,Jenkins有一个slave executor的基本概念,它为您处理文件复制、远程触发和结果收集(这实际上是Jenkins的核心功能——处理在许多机器上运行大量调度任务的管理开销)。除了启动从机(在您的场景中提供了Vagrant)并告诉Jenkins您的构建应该在那个特定的从机上运行之外,您实际上不需要做任何事情。在

以下是文档的相关入口点:

https://wiki.jenkins-ci.org/display/JENKINS/Distributed+builds

相关问题 更多 >