为什么Gradle将我的构建标记为失败的测试成功?

时间:2016-09-27 08:44:07

标签: java gradle groovy spock

我有一个带有失败测试的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,因为它在问题正文中有意义地重现有点过于庞大。

1 个答案:

答案 0 :(得分:1)

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