diff --git a/buildSrc/src/main/java/org/springframework/build/TestConventions.java b/buildSrc/src/main/java/org/springframework/build/TestConventions.java index baa741781c4..e6e2dd0d9a9 100644 --- a/buildSrc/src/main/java/org/springframework/build/TestConventions.java +++ b/buildSrc/src/main/java/org/springframework/build/TestConventions.java @@ -21,6 +21,8 @@ import java.util.Map; import org.gradle.api.Project; import org.gradle.api.plugins.JavaBasePlugin; import org.gradle.api.tasks.testing.Test; +import org.gradle.api.tasks.testing.TestFrameworkOptions; +import org.gradle.api.tasks.testing.junitplatform.JUnitPlatformOptions; import org.gradle.testretry.TestRetryPlugin; import org.gradle.testretry.TestRetryTaskExtension; @@ -34,6 +36,7 @@ import org.gradle.testretry.TestRetryTaskExtension; * * @author Brian Clozel * @author Andy Wilkinson + * @author Sam Brannen */ class TestConventions { @@ -50,7 +53,12 @@ class TestConventions { } private void configureTests(Project project, Test test) { - test.useJUnitPlatform(); + TestFrameworkOptions existingOptions = test.getOptions(); + test.useJUnitPlatform(options -> { + if (existingOptions instanceof JUnitPlatformOptions junitPlatformOptions) { + options.copyFrom(junitPlatformOptions); + } + }); test.include("**/*Tests.class", "**/*Test.class"); test.setSystemProperties(Map.of( "java.awt.headless", "true", diff --git a/spring-test/spring-test.gradle b/spring-test/spring-test.gradle index f703232a89d..6b6ab8709d1 100644 --- a/spring-test/spring-test.gradle +++ b/spring-test/spring-test.gradle @@ -104,14 +104,10 @@ test { description = "Runs JUnit 4, JUnit Jupiter, and TestNG tests." useJUnitPlatform { includeEngines "junit-vintage", "junit-jupiter", "testng" - excludeTags "failing-test-case" } - // We use `include` instead of `filter.includeTestsMatching`, since - // the latter results in some tests being executed/reported - // multiple times. - include(["**/*Tests.class", "**/*Test.class"]) + // `include` test filters and system properties are configured in + // org.springframework.build.TestConventions in buildSrc. filter.excludeTestsMatching("*TestCase") - systemProperty("testGroups", project.properties.get("testGroups")) - // Java Util Logging for the JUnit Platform. + // Optionally configure Java Util Logging for the JUnit Platform. // systemProperty("java.util.logging.manager", "org.apache.logging.log4j.jul.LogManager") }