Emil Lundberg Emil Lundberg - 6 months ago 32
Groovy Question

Why does Gradle mark my build with failed tests as successful?

I have a Gradle build with failing tests, but Gradle does not register the build as failed. However, the build does correctly fail if I remove a specific test case. Why is that?

$ ./gradlew clean check

:processResources UP-TO-DATE
:processTestResources UP-TO-DATE

com.example.FooProgramCliTest > fail FAILED
java.lang.AssertionError at FooProgramCliTest.java:26

1 test completed, 1 failed


Code sample on GitHub, because it's a bit too bulky to meaningfully reproduce in the question body.


Make sure your tests do not inadvertently cause System.exit(int) to be called. Doing so will prevent Gradle from registering the test failure. See here for an example use case where this could happen.