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

标签 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 ,因为它有点太大而无法在问题正文中有意义地重现。

最佳答案

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

关于java - 为什么 Gradle 将测试失败的构建标记为成功?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39720077/

相关文章:

java - 处理具有相似页面逻辑但不同定位器的环境

android - 如何在 Gradle Build Script 中使用 java 库?

groovy - char 上的 XOR 不适用于 groovy

java - 如何使用 “gradle build”命令创建fatJar

groovy - 如何在gsp中使用replaceAll?

java - 如何通过 API 查找 youtube 评论的投票数

java - 如何验证 "Hangul-Korean"文本?

java - 嵌入式 jetty : Different ports for internally- and externally-visible endpoints?

android - 在Android Studio中找不到名称为 'debug'的配置

gradle - 从插件访问配置ResolutionStrategy