我有一个测试失败的 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 ,因为它有点太大而无法在问题正文中有意义地重现。
最佳答案
确保您的测试不会无意中导致 System.exit(int)
被调用。这样做会阻止 Gradle 记录测试失败。参见 here有关可能发生这种情况的示例用例。
关于java - 为什么 Gradle 将测试失败的构建标记为成功?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39720077/