diff --git a/buildSrc/src/main/kotlin/ProjectConfigure.kt b/buildSrc/src/main/kotlin/ProjectConfigure.kt index 0bbf7ea40..ca98ff9e1 100644 --- a/buildSrc/src/main/kotlin/ProjectConfigure.kt +++ b/buildSrc/src/main/kotlin/ProjectConfigure.kt @@ -70,28 +70,43 @@ fun Project.configureKotlinTestSettings() { tasks.withType(Test::class) { useJUnitPlatform() } + val b = "Auto-set for project '${project.path}'. (configureKotlinTestSettings)" when { isKotlinJvmProject -> { dependencies { - "testImplementation"(kotlin("test-junit5")) + "testImplementation"(kotlin("test-junit5"))?.because(b) - "testApi"("org.junit.jupiter:junit-jupiter-api:${Versions.junit}") - "testRuntimeOnly"("org.junit.jupiter:junit-jupiter-engine:${Versions.junit}") + "testApi"("org.junit.jupiter:junit-jupiter-api:${Versions.junit}")?.because(b) + "testRuntimeOnly"("org.junit.jupiter:junit-jupiter-engine:${Versions.junit}")?.because(b) } } isKotlinMpp -> { kotlinSourceSets?.forEach { sourceSet -> - if (sourceSet.name == "common") { + fun configureJvmTest(sourceSet: KotlinSourceSet) { sourceSet.dependencies { - implementation(kotlin("test")) - implementation(kotlin("test-annotations-common")) - } - } else { - sourceSet.dependencies { - implementation(kotlin("test-junit5")) + implementation(kotlin("test-junit5"))?.because(b) - implementation("org.junit.jupiter:junit-jupiter-api:${Versions.junit}") - implementation("org.junit.jupiter:junit-jupiter-engine:${Versions.junit}") + implementation("org.junit.jupiter:junit-jupiter-api:${Versions.junit}")?.because(b) + runtimeOnly("org.junit.jupiter:junit-jupiter-engine:${Versions.junit}")?.because(b) + } + } + + val target = kotlinTargets.orEmpty() + .find { it.name == sourceSet.name.substringBeforeLast("Main").substringBeforeLast("Test") } + + when { + sourceSet.name == "commonTest" -> { + if (target?.platformType == KotlinPlatformType.jvm || target?.platformType == KotlinPlatformType.androidJvm) { + configureJvmTest(sourceSet) + } else { + sourceSet.dependencies { + implementation(kotlin("test"))?.because(b) + implementation(kotlin("test-annotations-common"))?.because(b) + } + } + } + sourceSet.name.contains("test", ignoreCase = true) -> { + configureJvmTest(sourceSet) } } } diff --git a/mirai-core/build.gradle.kts b/mirai-core/build.gradle.kts index 83dc503ef..0f1adf96b 100644 --- a/mirai-core/build.gradle.kts +++ b/mirai-core/build.gradle.kts @@ -92,7 +92,7 @@ kotlin { val androidTest by getting { dependencies { implementation(kotlin("test", Versions.kotlinCompiler)) - implementation(kotlin("test-junit", Versions.kotlinCompiler)) + implementation(kotlin("test-junit5", Versions.kotlinCompiler)) implementation(kotlin("test-annotations-common")) implementation(kotlin("test-common")) }