Move build test configuration to Gradle convention
This commit moves the Gradle test configuration to a convention so it can be applied to all test tasks, including from other source sets. See gh-30339
This commit is contained in:
parent
ed4404f350
commit
9562a1c146
14
build.gradle
14
build.gradle
|
@ -62,20 +62,6 @@ configure([rootProject] + javaProjects) { project ->
|
||||||
matching { it.name.endsWith("Classpath") }.all { it.extendsFrom(dependencyManagement) }
|
matching { it.name.endsWith("Classpath") }.all { it.extendsFrom(dependencyManagement) }
|
||||||
}
|
}
|
||||||
|
|
||||||
test {
|
|
||||||
useJUnitPlatform()
|
|
||||||
include(["**/*Tests.class", "**/*Test.class"])
|
|
||||||
systemProperty("java.awt.headless", "true")
|
|
||||||
systemProperty("testGroups", project.properties.get("testGroups"))
|
|
||||||
systemProperty("io.netty.leakDetection.level", "paranoid")
|
|
||||||
systemProperty("io.netty5.leakDetectionLevel", "paranoid")
|
|
||||||
systemProperty("io.netty5.leakDetection.targetRecords", "32")
|
|
||||||
systemProperty("io.netty5.buffer.lifecycleTracingEnabled", "true")
|
|
||||||
systemProperty("io.netty5.buffer.leakDetectionEnabled", "true")
|
|
||||||
jvmArgs(["--add-opens=java.base/java.lang=ALL-UNNAMED",
|
|
||||||
"--add-opens=java.base/java.util=ALL-UNNAMED"])
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
dependencyManagement(enforcedPlatform(dependencies.project(path: ":framework-platform")))
|
dependencyManagement(enforcedPlatform(dependencies.project(path: ":framework-platform")))
|
||||||
|
|
|
@ -16,6 +16,8 @@
|
||||||
|
|
||||||
package org.springframework.build;
|
package org.springframework.build;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
import org.gradle.api.Project;
|
import org.gradle.api.Project;
|
||||||
import org.gradle.api.plugins.JavaBasePlugin;
|
import org.gradle.api.plugins.JavaBasePlugin;
|
||||||
import org.gradle.api.tasks.testing.Test;
|
import org.gradle.api.tasks.testing.Test;
|
||||||
|
@ -41,11 +43,36 @@ class TestConventions {
|
||||||
|
|
||||||
private void configureTestConventions(Project project) {
|
private void configureTestConventions(Project project) {
|
||||||
project.getTasks().withType(Test.class,
|
project.getTasks().withType(Test.class,
|
||||||
test -> project.getPlugins().withType(TestRetryPlugin.class, testRetryPlugin -> {
|
test -> {
|
||||||
|
configureTests(project, test);
|
||||||
|
configureTestRetryPlugin(project, test);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
private void configureTests(Project project, Test test) {
|
||||||
|
test.useJUnitPlatform();
|
||||||
|
test.include("**/*Tests.class", "**/*Test.class");
|
||||||
|
test.setSystemProperties(Map.of(
|
||||||
|
"java.awt.headless", "true",
|
||||||
|
"io.netty.leakDetection.level", "paranoid",
|
||||||
|
"io.netty5.leakDetectionLevel", "paranoid",
|
||||||
|
"io.netty5.leakDetection.targetRecords", "32",
|
||||||
|
"io.netty5.buffer.lifecycleTracingEnabled", "true"
|
||||||
|
));
|
||||||
|
if (project.hasProperty("testGroups")) {
|
||||||
|
test.systemProperty("testGroups", project.getProperties().get("testGroups"));
|
||||||
|
}
|
||||||
|
test.jvmArgs("--add-opens=java.base/java.lang=ALL-UNNAMED",
|
||||||
|
"--add-opens=java.base/java.util=ALL-UNNAMED",
|
||||||
|
"-Djava.locale.providers=COMPAT");
|
||||||
|
}
|
||||||
|
|
||||||
|
private void configureTestRetryPlugin(Project project, Test test) {
|
||||||
|
project.getPlugins().withType(TestRetryPlugin.class, testRetryPlugin -> {
|
||||||
TestRetryTaskExtension testRetry = test.getExtensions().getByType(TestRetryTaskExtension.class);
|
TestRetryTaskExtension testRetry = test.getExtensions().getByType(TestRetryTaskExtension.class);
|
||||||
testRetry.getFailOnPassedAfterRetry().set(true);
|
testRetry.getFailOnPassedAfterRetry().set(true);
|
||||||
testRetry.getMaxRetries().set(isCi() ? 3 : 0);
|
testRetry.getMaxRetries().set(isCi() ? 3 : 0);
|
||||||
}));
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean isCi() {
|
private boolean isCi() {
|
||||||
|
|
Loading…
Reference in New Issue