[kotlin-test] Reconfigure JVM unit tests

- Include common annotations and assertions test source sets into each test platform test compilation in order to check how they work with that platform's annotations and asserter
- Run these tests without platform support jar to check the default asserter implementation
This commit is contained in:
Ilya Gorbunov
2024-02-06 12:58:50 +00:00
committed by Space Team
parent 309cecdefd
commit 905423aa17
+15 -5
View File
@@ -159,6 +159,7 @@ kotlin {
}
}
val jvmJUnitTest by getting {
dependsOn(commonTest)
kotlin.srcDir("junit/src/test/kotlin")
}
val jvmJUnit5 by getting {
@@ -170,6 +171,7 @@ kotlin {
}
}
val jvmJUnit5Test by getting {
dependsOn(commonTest)
kotlin.srcDir("junit5/src/test/kotlin")
dependencies {
runtimeOnly(libs.junit.jupiter.engine)
@@ -185,6 +187,7 @@ kotlin {
}
}
val jvmTestNGTest by getting {
dependsOn(commonTest)
kotlin.srcDir("testng/src/test/kotlin")
dependencies {
implementation("org.testng:testng:7.5.1")
@@ -266,12 +269,18 @@ tasks {
dependsOn(jvmJarTasks)
}
val jvmTestTasks = jvmTestFrameworks.map { framework ->
register("jvm${framework}Test", Test::class) {
val jvmTestTasks = jvmTestFrameworks.flatMap { framework ->
listOf(false, true).map { excludeAsserterContributor ->
register("jvm${framework}${if (excludeAsserterContributor) "NoAsserter" else ""}Test", Test::class) {
group = "verification"
val compilation = kotlin.jvm().compilations["${framework}Test"]
classpath = compilation.runtimeDependencyFiles + compilation.output.allOutputs
testClassesDirs = compilation.output.classesDirs
val testCompilation = kotlin.jvm().compilations["${framework}Test"]
classpath = testCompilation.runtimeDependencyFiles + testCompilation.output.allOutputs
if (excludeAsserterContributor) {
val mainCompilation = kotlin.jvm().compilations["$framework"]
classpath -= mainCompilation.output.allOutputs
filter.excludePatterns += "*ContributorTest"
}
testClassesDirs = testCompilation.output.classesDirs
when (framework) {
JvmTestFramework.JUnit -> useJUnit()
JvmTestFramework.JUnit5 -> useJUnitPlatform()
@@ -279,6 +288,7 @@ tasks {
}
}
}
}
val allTests by existing {
dependsOn(jvmTestTasks)
}