Skip to content

Commit 526051f

Browse files
committed
Add conventions
Resolves #8
1 parent bd763e2 commit 526051f

File tree

2 files changed

+18
-2
lines changed

2 files changed

+18
-2
lines changed

src/main/java/org/gradlex/javamodule/testing/JavaModuleTestingExtension.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
package org.gradlex.javamodule.testing;
1818

1919
import org.gradle.api.file.FileCollection;
20+
import org.gradle.testing.base.TestingExtension;
2021
import org.gradlex.javamodule.testing.internal.ModuleInfoParser;
2122
import org.gradlex.javamodule.testing.internal.bridges.JavaModuleDependenciesBridge;
2223
import org.gradlex.javamodule.testing.internal.provider.WhiteboxTestCompileArgumentProvider;
@@ -39,6 +40,7 @@
3940
import org.gradle.testing.base.TestSuite;
4041

4142
import javax.inject.Inject;
43+
import java.io.File;
4244

4345
@SuppressWarnings("UnstableApiUsage")
4446
public abstract class JavaModuleTestingExtension {
@@ -51,6 +53,19 @@ public abstract class JavaModuleTestingExtension {
5153
public JavaModuleTestingExtension(Project project, JavaModuleDetector moduleDetector) {
5254
this.project = project;
5355
this.moduleDetector = moduleDetector;
56+
57+
TestingExtension testing = project.getExtensions().getByType(TestingExtension.class);
58+
testing.getSuites().withType(JvmTestSuite.class).configureEach(jvmTestSuite -> {
59+
boolean isTestModule = jvmTestSuite.getSources().getJava().getSrcDirs().stream().anyMatch(src -> new File(src, "module-info.java").exists());
60+
if ("test".equals(jvmTestSuite.getName())) {
61+
jvmTestSuite.useJUnitJupiter(); // override old Gradle default to default to JUnit5 for all suites
62+
}
63+
if (isTestModule) {
64+
blackbox(jvmTestSuite);
65+
} else {
66+
whitebox(jvmTestSuite, conf -> conf.getOpensTo().add("org.junit.platform.commons"));
67+
}
68+
});
5469
}
5570

5671
/**

src/main/java/org/gradlex/javamodule/testing/JavaModuleTestingPlugin.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
import org.gradle.api.NonNullApi;
2020
import org.gradle.api.Plugin;
2121
import org.gradle.api.Project;
22+
import org.gradle.api.plugins.JvmTestSuitePlugin;
2223
import org.gradle.util.GradleVersion;
2324

2425
@SuppressWarnings("unused")
@@ -30,7 +31,7 @@ public void apply(Project project) {
3031
if (GradleVersion.current().compareTo(GradleVersion.version("7.4")) < 0) {
3132
throw new RuntimeException("This plugin requires Gradle 7.4+");
3233
}
33-
34-
project.getExtensions().create("javaModuleTesting", JavaModuleTestingExtension.class);
34+
project.getPlugins().withType(JvmTestSuitePlugin.class, p->
35+
project.getExtensions().create("javaModuleTesting", JavaModuleTestingExtension.class));
3536
}
3637
}

0 commit comments

Comments
 (0)