我正在尝试使用 Jenkins 构建一个多模块 Maven 项目。

当我使用 相同的环境 (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 在命令行中所做的那样?

提前致谢。

最佳答案

默认情况下,Jenkins 会忽略测试失败,然后将构建标记为不稳定(如果有)。

控制它的参数是: testFailureIgnore(参见 surefire plugin doc )

我从未尝试过,但我会尝试在 jenkins 作业配置上覆盖该设置:

-Dmaven.test.failure.ignore=false

关于maven - 如何让 Jenkins 在 Maven 2 构建上达到 --fail-fast?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10418931/

10-14 12:51
查看更多