Maven多模块构建不尊重failsafe-maven-plugin?

时间:2009-09-02 15:10:40

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

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

留下原来的问题。


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

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

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

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

项目结构如下:

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

3 个答案:

答案 0 :(得分:0)

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

我还尝试更新Maven版本,最近几乎没有与多模块版本相关的修复。

答案 1 :(得分:0)

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

此后,运行 verify 阶段,查看集成测试的结果。如果其中一个测试失败了,那么 Maven将返回一个构建失败,Hudson将正确地接收,因此你的构建可以被标记为已损坏。

答案 2 :(得分:0)

使用maven profile打开/关闭maven failsafe插件的verify goal