为什么 Gradle 将测试失败的构建标记为成功?
Why does Gradle mark my build with failed tests as successful?
我有一个测试失败的 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。
我有一个测试失败的 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。