【发布时间】:2015-06-26 05:00:51
【问题描述】:
我正在尝试创建一个虚拟机来运行一些测试并在完成后销毁。我正在使用 Jenkins 的“启动 Vagrant VM”选项来启动 VM,并使用 chef 来安装所需的包并在其中运行测试。在此 VM 中完成测试后,它(VM)有什么方法可以将结果传达回触发它的 Jenkins 中的作业?
我被这部分困住了。 我已经基于自定义的 vagrant box 实现了 VM 的启动,其中包含运行测试所需的所有基本软件包和软件。
【问题讨论】:
-
测试完成后,您要制作并发布测试报告工件。然后,您必须设置一个 jenkins 触发器,该触发器将在测试报告可用时调用任务来销毁 VM。您有测试报告还是在某处发布?你怎么知道现在测试已经结束了?
-
测试完成后,我们生成包含测试结果的 JTL 文件,并尝试解析该文件以了解是否有任何故障。我们将其转换为 html 页面以提高可读性。测试完成后销毁 VM 的步骤就位。
-
您可能还想在销毁机器之前保存测试结果。您应该将工件复制到安装在 vagrant box 中的“共享存储”。默认情况下,虚拟机文件夹
/vagrant与 Vagrantfile 的父目录同步。从詹金斯,做一个轮询检查让我们说每一秒:如果 Vagrantfile 的父目录包含测试输出报告文件然后触发销毁任务(当然是在复制结果之后):) -
是的,我知道 Vagrant 的同步文件夹,你说的确实有道理(不这么认为)。我只需要弄清楚如何对特定目录进行轮询。
标签: jenkins vagrant chef-infra virtual-machine jenkins-plugins