【问题标题】:Maven Multi-Module builds not honoring failsafe-maven-plugin?Maven 多模块构建不支持故障安全插件?
【发布时间】:2010-11-24 23:52:54
【问题描述】:

我最近发现 Hudson 不是问题所在。实际上它是 Maven 本身,因为多模块构建导致构建失败,而不是 Hudson。我只是没有注意到问题实际存在于哪里。

把原来的问题留在这里。


我正在使用failsafe-maven-plugin 运行一些集成测试。故障安全和万无一失之间的区别在于故障安全允许失败并且不会使构建失败。

在我的夜间构建中,有时集成测试使用的服务可能会关闭。在正常构建中,故障安全插件会让构建继续,因为允许集成测试失败。然而,Hudson 似乎并不尊重这一点,并停止了建造并产生了雨水。

我尝试使用 -DskipITs 在夜间构建中 turn the failsafe tests off。这似乎失败了,因为我在一个多模块构建中。

关于如何让 Maven 尊重这些测试可能会失败,即使它们是特定模块的一部分的任何想法?

项目结构如下:

-parent
\-jar
\-jar (where integration tests run)
\-war
\-ear

【问题讨论】:

  • 这些集成测试是在特定目录中还是在专用模块中(这不是我理解的)?如果不是,为什么不呢?你能告诉我们更多关于多模块结构的信息吗?你为每晚构建运行什么目标,verify 目标?
  • 我实际上每晚在顶级父 pom 上运行安装。

标签: maven-2 surefire maven-failsafe-plugin


【解决方案1】:

使用 maven profile 打开/关闭 maven 故障保护插件的 verify goal

【讨论】:

    【解决方案2】:

    我不相信你最初假设 failsafe-maven 不会使构建失败是正确的。失败的测试不会阻止 integration-test 阶段的完成,这与运行单元测试的 surefire 插件不同。这允许 post-integration-test 阶段运行,因此可以拆除测试环境(应用服务器关闭等)。

    在此之后,验证 阶段运行,该阶段查看集成测试的结果。如果其中一项测试失败,那么 Maven 将返回一个构建失败,Hudson 会正确地选择它,因此您的构建可以被标记为损坏。

    【讨论】:

      【解决方案3】:

      您可以使用配置文件为不同的环境(夜间构建、发布、普通开发人员构建等)使构建稍有不同。

      我也会尝试更新 Maven 版本,最近很少有与多模块构建相关的修复。

      【讨论】:

        猜你喜欢
        • 2014-04-03
        • 2016-02-15
        • 2012-09-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-11-12
        • 2016-01-30
        • 1970-01-01
        相关资源
        最近更新 更多