有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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) 个答案

  1. # 1 楼答案

    确保您的测试不会无意中导致调用System.exit(int)。这样做将防止Gradle记录测试失败。参见here了解可能发生这种情况的示例用例