作为Jenkins Build的一部分运行Spock测试

时间:2017-07-24 20:44:38

标签: java maven jenkins spock

我目前有一个使用Jenkins自动构建的版本。 Jenkins构建/部署作业使用maven构建Java EAR,然后将构建的EAR部署到服务器。

我想将Spock测试集成到此构建/部署流程中。构建EAR后,我想针对EAR代码运行Spock测试。如果所有测试都通过,那么我想继续部署EAR。如果一个或多个测试失败,那么我希望Jenkins构建/部署作业失败并返回错误。

我还希望显示测试结果的摘要,无论它们是通过还是失败。

我需要对Jenkins构建/部署作业进行哪些更改,实际构建EAR和/或Spock测试的maven项目是为了实现此目的?

1 个答案:

答案 0 :(得分:2)

您可以将Spock视为JUnit扩展。因此,所有帮助您运行JUnit驱动测试的工具也适用于spock。

例如,

  • 如果你在Maven,你可以使用maven-surefire-plugin或maven-failsafe-plugin来运行spock驱动的测试。
  • 如果您想在Jenkins中查看结果,可以使用Post Build操作并显示“Publish Junit test results report”

现在,一个令人困惑的部分是关于EAR。测试(单元和集成)通常在构建准备好之前运行。在EAR准备好之后,可能您想要运行系统测试(结束2端流)或其他东西。这意味着spock / junit /任何其他框架都必须从外部联系EAR,这反过来意味着您必须启动应用程序服务器,这些测试将像远程客户端一样。

这是可能的,但设置会更复杂(所有数据库,应用程序服务器本身等等),但这超出了这个问题的范围。