java为什么Gradle用失败的测试将我的构建标记为成功?
我有一个测试失败的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 楼答案
确保您的测试不会无意中导致调用
System.exit(int)
。这样做将防止Gradle记录测试失败。参见here了解可能发生这种情况的示例用例