【问题标题】:Running Spock Tests As Part of Jenkins Build作为 Jenkins 构建的一部分运行 Spock 测试
【发布时间】:2017-12-30 13:54:11
【问题描述】:

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

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

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

我需要对 Jenkins 构建/部署作业、实际构建 EAR 和/或 Spock 测试的 maven 项目进行哪些更改才能完成此操作?

【问题讨论】:

标签: java maven jenkins spock


【解决方案1】:

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

例如,

  • 如果您使用 Maven,则可以使用 maven-surefire-plugin 或 maven-failsafe-plugin 运行 spock 驱动的测试。
  • 如果您想在 Jenkins 中查看结果,可以使用 Post Build 操作并显示“发布 Junit 测试结果报告”

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-09
    • 1970-01-01
    • 2016-12-12
    相关资源
    最近更新 更多