Enable Junit 5 Test Cases Based on Java System Properties
JUnit 5 supports disabling test cases via the @Disabled
annotation.
Sometimes, you may want some cases to be conditionally disabled or enabled.
JUnit 5 provides many annotations to support conditional test execution, like @EnabledOnOs(MAC)
, @DisabledOnJre(JAVA_8)
and @EnabledIfEnvironmentVariable
.
Let’s say, a test case only runs when a Java system property is set to a certain value.
To do it, add @EnabledIfSystemProperty
onto the test case.
@Test
@EnabledIfSystemProperty(named = "foo.enabled", matches = "on")
void fooTest() {
}
The fooTest
runs only when the foo.enabled
system property is set to on
.
To run this test case via Gradle, type the command below.
./gradlew test --tests '*.fooTest' -i -Dfoo.enabled=on
To make the JVM running the test case know the Java system property passed to the JVM running Gradle, add below lines
in the build.gradle
file.
test {
systemProperty "foo.enabled", System.getProperty("foo.enabled")
}
...