我正在尝试使用Jenkins构建一个多模块Maven项目。
当我使用与Jenkins一样的相同环境(variables / settings.xml / user)在命令行上构建相同的项目时,测试失败会导致构建立即失败:
Failed tests:
testSomething(com.package_name.TestSomethingOrTheOther)
Tests run: .., Failures: 1, Errors: 0, Skipped: 0
[INFO] ------------------------------------------------------------------------
[ERROR] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] There are test failures.
...
# Build fails immediately
在 Jenkins 中构建的地方:
Failed tests:
testSomething(com.package_name.TestSomethingOrTheOther)
Tests run: .., Failures: 1, Errors: 0, Skipped: 0
[ERROR] There are test failures.
...
# Build continues to other modules
...
[INFO] Reactor Summary:
[INFO] ------------------------------------------------------------------------
[INFO] parent ................................................ SUCCESS [.....s]
[INFO] module-that-failed .................................... SUCCESS [.....s]
[INFO] ------------------------------------------------------------------------
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------------------------
构建声明所有模块和父级都是 SUCCESS -ful,实际上,这些应该是失败。
我如何让Jenkins在maven版本中强制执行故障快速,就像maven在命令行中那样?
提前致谢。
答案 0 :(得分:9)
Jenkins默认忽略测试失败,然后将构建标记为不稳定,如果它们是任何。
控制它的参数是:testFailureIgnore(参见surefire plugin doc)
我从未尝试过,但我会尝试在jenkins作业配置上覆盖该设置:
-Dmaven.test.failure.ignore =假
答案 1 :(得分:1)
如果您点击 Build 部分中的高级按钮,则可以指定MAVEN_OPTS
。