运行 Spock 测试作为 Jenkins 构建的一部分
Running Spock Tests As Part of Jenkins Build
我目前有一个使用 Jenkins 自动化的构建。 Jenkins build/deploy 作业使用 Maven 构建 Java EAR,然后将构建的 EAR 部署到服务器。
我想将 Spock 测试集成到这个 build/deploy 流程中。构建 EAR 后,我想 运行 Spock 针对 EAR 代码进行测试。如果所有测试都通过,那么我想继续部署 EAR。如果一项或多项测试失败,那么我希望 Jenkins build/deploy 作业失败并且 return 出现错误。
我还想显示测试结果的摘要,无论它们是通过还是失败。
我需要对 Jenkins build/deploy 工作进行哪些更改,即实际构建 EAR and/or Spock 测试的 Maven 项目才能完成此任务?
您可以将 Spock 视为 JUnit 扩展。因此,所有帮助您 运行 JUnit 驱动测试的工具也适用于 spock。
例如,
- 如果你在 Maven 中,你可以使用 maven-surefire-plugin 或 maven-failsafe-plugin 来 运行 spock 驱动的测试。
- 如果您想在 Jenkins 中查看结果,可以使用 Post 构建操作并显示 "Publish Junit test result report"
现在,一个令人困惑的部分是关于 EAR。测试(单元和集成)通常 运行 在您的构建准备就绪之前 。 EAR 准备就绪后,您可能想要 运行 系统测试(end-2-end 流程)或其他东西。这意味着 spock/junit/any 其他框架必须从外部联系 EAR,这反过来意味着您必须启动应用程序服务器,这些测试将像远程客户端一样。
这是可能的,但设置会复杂得多(所有数据库、应用程序服务器本身等等),但这有点超出了这个问题的范围。
我目前有一个使用 Jenkins 自动化的构建。 Jenkins build/deploy 作业使用 Maven 构建 Java EAR,然后将构建的 EAR 部署到服务器。
我想将 Spock 测试集成到这个 build/deploy 流程中。构建 EAR 后,我想 运行 Spock 针对 EAR 代码进行测试。如果所有测试都通过,那么我想继续部署 EAR。如果一项或多项测试失败,那么我希望 Jenkins build/deploy 作业失败并且 return 出现错误。
我还想显示测试结果的摘要,无论它们是通过还是失败。
我需要对 Jenkins build/deploy 工作进行哪些更改,即实际构建 EAR and/or Spock 测试的 Maven 项目才能完成此任务?
您可以将 Spock 视为 JUnit 扩展。因此,所有帮助您 运行 JUnit 驱动测试的工具也适用于 spock。
例如,
- 如果你在 Maven 中,你可以使用 maven-surefire-plugin 或 maven-failsafe-plugin 来 运行 spock 驱动的测试。
- 如果您想在 Jenkins 中查看结果,可以使用 Post 构建操作并显示 "Publish Junit test result report"
现在,一个令人困惑的部分是关于 EAR。测试(单元和集成)通常 运行 在您的构建准备就绪之前 。 EAR 准备就绪后,您可能想要 运行 系统测试(end-2-end 流程)或其他东西。这意味着 spock/junit/any 其他框架必须从外部联系 EAR,这反过来意味着您必须启动应用程序服务器,这些测试将像远程客户端一样。
这是可能的,但设置会复杂得多(所有数据库、应用程序服务器本身等等),但这有点超出了这个问题的范围。