Export kotlin.test packages with annotations and underlying frameworks

- Add exports for jvm package names used in kotlin.test annotations;

- Export transitively underlying test framework modules
Otherwise "This class does not have a constructor" happens when using
an aliased annotation, e.g. kotlin.test.Test aliased to org.junit.test

KT-41320
This commit is contained in:
Ilya Gorbunov
2020-08-24 23:41:04 +03:00
parent ef57c62576
commit 9c3ff6828a
4 changed files with 8 additions and 4 deletions

View File

@@ -53,7 +53,8 @@ ext.compileJava9Sources = { Project project, String moduleName, Collection<FileC
options.compilerArgs = [
'--module-path', modulePath.asPath,
'--patch-module', "$moduleName=${moduleFiles.asPath}"
'--patch-module', "$moduleName=${moduleFiles.asPath}",
'-Xlint:-requires-transitive-automatic' // suppress automatic module transitive dependencies in kotlin.test
]
classpath = files()

View File

@@ -2,9 +2,10 @@ module kotlin.test.junit {
requires transitive kotlin.stdlib;
requires transitive kotlin.test;
requires junit;
requires transitive junit;
exports kotlin.test.junit;
exports kotlin.test.junit.annotations;
provides kotlin.test.AsserterContributor with kotlin.test.junit.JUnitContributor;
}

View File

@@ -3,9 +3,10 @@ module kotlin.test.junit5 {
requires transitive kotlin.stdlib;
requires transitive kotlin.test;
requires org.junit.jupiter.api;
requires transitive org.junit.jupiter.api;
exports kotlin.test.junit5;
exports kotlin.test.junit5.annotations;
provides kotlin.test.AsserterContributor with kotlin.test.junit5.JUnit5Contributor;
}

View File

@@ -2,10 +2,11 @@ module kotlin.test.testng {
requires transitive kotlin.stdlib;
requires transitive kotlin.test;
requires org.testng; // automatic module name in testng manifest since 7.0.0
requires transitive org.testng; // automatic module name in testng manifest since 7.0.0
// won't work with earlier versions, where just 'testng' name was inferred from the artifact name
exports kotlin.test.testng;
exports kotlin.test.testng.annotations;
provides kotlin.test.AsserterContributor with kotlin.test.testng.TestNGContributor;
}