【问题标题】:Why does Gradle mark my build with failed tests as successful?为什么 Gradle 将失败测试的构建标记为成功?
【发布时间】:2017-02-04 19:33:21
【问题描述】:

我有一个测试失败的 Gradle 构建,但 Gradle 没有将构建注册为失败。但是,如果我删除特定的测试用例,构建确实会失败。这是为什么呢?

$ ./gradlew clean check

:clean
:compileJava
:processResources UP-TO-DATE
:classes
:compileTestJava
:processTestResources UP-TO-DATE
:testClasses
:test

com.example.FooProgramCliTest > fail FAILED
    java.lang.AssertionError at FooProgramCliTest.java:26

1 test completed, 1 failed
:check

BUILD SUCCESSFUL

代码示例 on GitHub,因为它有点过于庞大,无法在问题正文中有意义地重现。

【问题讨论】:

  • 单元测试的代码是什么?
  • 有点过于复杂,无法直接显示在问题中,请参阅我添加到问题中的链接(与下面我的答案中的链接相同)。
  • 好的,如果你已经有了答案,那么你可以接受你自己的答案,这样这个问题就不会出现“开放”。是这样吗?
  • 是的。我暂缓接受,以防万一有其他答案出现。

标签: java gradle groovy spock


【解决方案1】:

确保您的测试不会无意中导致System.exit(int) 被调用。这样做会阻止 Gradle 注册测试失败。请参阅 here 了解可能发生这种情况的示例用例。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-01-26
    • 1970-01-01
    • 1970-01-01
    • 2019-12-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多