MPP: Assign TEST scope to dependencies of test source sets

#KT-26868 Fixed
This commit is contained in:
Alexey Sedunov
2018-10-02 13:32:48 +03:00
parent 523b662680
commit 558345b057
2 changed files with 53 additions and 37 deletions
@@ -14,6 +14,9 @@ import com.intellij.openapi.externalSystem.service.project.manage.AbstractProjec
import com.intellij.openapi.externalSystem.util.ExternalSystemApiUtil
import com.intellij.openapi.module.Module
import com.intellij.openapi.project.Project
import com.intellij.openapi.roots.DependencyScope
import com.intellij.openapi.roots.ExportableOrderEntry
import com.intellij.openapi.roots.ModifiableRootModel
import org.jetbrains.kotlin.cli.common.arguments.K2JSCompilerArguments
import org.jetbrains.kotlin.config.CoroutineSupport
import org.jetbrains.kotlin.config.JvmTarget
@@ -59,9 +62,22 @@ class KotlinSourceSetDataService : AbstractProjectDataService<GradleSourceSetDat
}
configureFacet(sourceSetData, kotlinSourceSet, mainModuleData, ideModule, modelsProvider)
if (kotlinSourceSet.isTestModule) {
assignTestScope(rootModel)
}
}
}
private fun assignTestScope(rootModel: ModifiableRootModel) {
rootModel
.orderEntries
.asSequence()
.filterIsInstance<ExportableOrderEntry>()
.filter { it.scope == DependencyScope.COMPILE }
.forEach { it.scope = DependencyScope.TEST }
}
companion object {
private val KotlinModule.kind
get() = when (this) {
@@ -139,9 +139,9 @@ class NewMultiplatformProjectImportingTest : GradleImportingTestCase() {
}
module("app_commonTest") {
platform(CommonIdePlatformKind.Platform)
libraryDependency("Gradle: org.jetbrains.kotlin:kotlin-stdlib-common:$kotlinVersion", DependencyScope.COMPILE)
moduleDependency("lib_commonMain", DependencyScope.COMPILE)
moduleDependency("app_commonMain", DependencyScope.COMPILE)
libraryDependency("Gradle: org.jetbrains.kotlin:kotlin-stdlib-common:$kotlinVersion", DependencyScope.TEST)
moduleDependency("lib_commonMain", DependencyScope.TEST)
moduleDependency("app_commonMain", DependencyScope.TEST)
sourceFolder("app/src/commonTest/kotlin", KotlinSourceRootType.TestSource)
sourceFolder("app/src/commonTest/resources", KotlinResourceRootType.TestResource)
inheritProjectOutput()
@@ -159,13 +159,13 @@ class NewMultiplatformProjectImportingTest : GradleImportingTestCase() {
}
module("app_jsTest") {
platform(JsIdePlatformKind.Platform)
libraryDependency("Gradle: org.jetbrains.kotlin:kotlin-stdlib-js:$kotlinVersion", DependencyScope.COMPILE)
libraryDependency("Gradle: org.jetbrains.kotlin:kotlin-stdlib-common:$kotlinVersion", DependencyScope.COMPILE)
moduleDependency("lib_jsMain", DependencyScope.COMPILE)
moduleDependency("lib_commonMain", DependencyScope.COMPILE)
moduleDependency("app_commonMain", DependencyScope.COMPILE)
moduleDependency("app_commonTest", DependencyScope.COMPILE)
moduleDependency("app_jsMain", DependencyScope.COMPILE)
libraryDependency("Gradle: org.jetbrains.kotlin:kotlin-stdlib-js:$kotlinVersion", DependencyScope.TEST)
libraryDependency("Gradle: org.jetbrains.kotlin:kotlin-stdlib-common:$kotlinVersion", DependencyScope.TEST)
moduleDependency("lib_jsMain", DependencyScope.TEST)
moduleDependency("lib_commonMain", DependencyScope.TEST)
moduleDependency("app_commonMain", DependencyScope.TEST)
moduleDependency("app_commonTest", DependencyScope.TEST)
moduleDependency("app_jsMain", DependencyScope.TEST)
sourceFolder("app/src/jsTest/kotlin", KotlinSourceRootType.TestSource)
sourceFolder("app/src/jsTest/resources", KotlinResourceRootType.TestResource)
outputPath("app/build/classes/kotlin/js/test", false)
@@ -185,15 +185,15 @@ class NewMultiplatformProjectImportingTest : GradleImportingTestCase() {
}
module("app_jvmTest") {
platform(JvmIdePlatformKind.Platform(JvmTarget.JVM_1_6))
libraryDependency("Gradle: org.jetbrains.kotlin:kotlin-stdlib:$kotlinVersion", DependencyScope.COMPILE)
libraryDependency("Gradle: org.jetbrains.kotlin:kotlin-stdlib-common:$kotlinVersion", DependencyScope.COMPILE)
libraryDependency("Gradle: org.jetbrains:annotations:13.0", DependencyScope.COMPILE)
moduleDependency("lib_jvmMain", DependencyScope.COMPILE)
moduleDependency("lib_commonMain", DependencyScope.COMPILE)
moduleDependency("app_test", DependencyScope.COMPILE)
moduleDependency("app_jvmMain", DependencyScope.COMPILE)
moduleDependency("app_commonMain", DependencyScope.COMPILE)
moduleDependency("app_commonTest", DependencyScope.COMPILE)
libraryDependency("Gradle: org.jetbrains.kotlin:kotlin-stdlib:$kotlinVersion", DependencyScope.TEST)
libraryDependency("Gradle: org.jetbrains.kotlin:kotlin-stdlib-common:$kotlinVersion", DependencyScope.TEST)
libraryDependency("Gradle: org.jetbrains:annotations:13.0", DependencyScope.TEST)
moduleDependency("lib_jvmMain", DependencyScope.TEST)
moduleDependency("lib_commonMain", DependencyScope.TEST)
moduleDependency("app_test", DependencyScope.TEST)
moduleDependency("app_jvmMain", DependencyScope.TEST)
moduleDependency("app_commonMain", DependencyScope.TEST)
moduleDependency("app_commonTest", DependencyScope.TEST)
sourceFolder("app/src/jvmTest/kotlin", JavaSourceRootType.TEST_SOURCE)
sourceFolder("app/src/jvmTest/resources", JavaResourceRootType.TEST_RESOURCE)
outputPath("app/build/classes/kotlin/jvm/test", false)
@@ -211,11 +211,11 @@ class NewMultiplatformProjectImportingTest : GradleImportingTestCase() {
}
module("app_test") {
platform(JvmIdePlatformKind.Platform(JvmTarget.JVM_1_8))
libraryDependency("Gradle: org.jetbrains.kotlin:kotlin-stdlib:$kotlinVersion", DependencyScope.COMPILE)
libraryDependency("Gradle: org.jetbrains.kotlin:kotlin-stdlib-common:$kotlinVersion", DependencyScope.COMPILE)
libraryDependency("Gradle: org.jetbrains:annotations:13.0", DependencyScope.COMPILE)
moduleDependency("lib_commonMain", DependencyScope.COMPILE)
moduleDependency("app_main", DependencyScope.COMPILE)
libraryDependency("Gradle: org.jetbrains.kotlin:kotlin-stdlib:$kotlinVersion", DependencyScope.TEST)
libraryDependency("Gradle: org.jetbrains.kotlin:kotlin-stdlib-common:$kotlinVersion", DependencyScope.TEST)
libraryDependency("Gradle: org.jetbrains:annotations:13.0", DependencyScope.TEST)
moduleDependency("lib_commonMain", DependencyScope.TEST)
moduleDependency("app_main", DependencyScope.TEST)
sourceFolder("app/src/test/java", JavaSourceRootType.TEST_SOURCE)
sourceFolder("app/src/test/kotlin", JavaSourceRootType.TEST_SOURCE)
sourceFolder("app/src/test/resources", JavaResourceRootType.TEST_RESOURCE)
@@ -231,8 +231,8 @@ class NewMultiplatformProjectImportingTest : GradleImportingTestCase() {
}
module("lib_commonTest") {
platform(CommonIdePlatformKind.Platform)
libraryDependency("Gradle: org.jetbrains.kotlin:kotlin-stdlib-common:$kotlinVersion", DependencyScope.COMPILE)
moduleDependency("lib_commonMain", DependencyScope.COMPILE)
libraryDependency("Gradle: org.jetbrains.kotlin:kotlin-stdlib-common:$kotlinVersion", DependencyScope.TEST)
moduleDependency("lib_commonMain", DependencyScope.TEST)
sourceFolder("lib/src/commonTest/kotlin", KotlinSourceRootType.TestSource)
sourceFolder("lib/src/commonTest/resources", KotlinResourceRootType.TestResource)
inheritProjectOutput()
@@ -248,11 +248,11 @@ class NewMultiplatformProjectImportingTest : GradleImportingTestCase() {
}
module("lib_jsTest") {
platform(JsIdePlatformKind.Platform)
libraryDependency("Gradle: org.jetbrains.kotlin:kotlin-stdlib-js:$kotlinVersion", DependencyScope.COMPILE)
libraryDependency("Gradle: org.jetbrains.kotlin:kotlin-stdlib-common:$kotlinVersion", DependencyScope.COMPILE)
moduleDependency("lib_commonMain", DependencyScope.COMPILE)
moduleDependency("lib_commonTest", DependencyScope.COMPILE)
moduleDependency("lib_jsMain", DependencyScope.COMPILE)
libraryDependency("Gradle: org.jetbrains.kotlin:kotlin-stdlib-js:$kotlinVersion", DependencyScope.TEST)
libraryDependency("Gradle: org.jetbrains.kotlin:kotlin-stdlib-common:$kotlinVersion", DependencyScope.TEST)
moduleDependency("lib_commonMain", DependencyScope.TEST)
moduleDependency("lib_commonTest", DependencyScope.TEST)
moduleDependency("lib_jsMain", DependencyScope.TEST)
sourceFolder("lib/src/jsTest/kotlin", KotlinSourceRootType.TestSource)
sourceFolder("lib/src/jsTest/resources", KotlinResourceRootType.TestResource)
outputPath("lib/build/classes/kotlin/js/test", false)
@@ -269,12 +269,12 @@ class NewMultiplatformProjectImportingTest : GradleImportingTestCase() {
}
module("lib_jvmTest") {
platform(JvmIdePlatformKind.Platform(JvmTarget.JVM_1_6))
libraryDependency("Gradle: org.jetbrains.kotlin:kotlin-stdlib:$kotlinVersion", DependencyScope.COMPILE)
libraryDependency("Gradle: org.jetbrains.kotlin:kotlin-stdlib-common:$kotlinVersion", DependencyScope.COMPILE)
libraryDependency("Gradle: org.jetbrains:annotations:13.0", DependencyScope.COMPILE)
moduleDependency("lib_commonTest", DependencyScope.COMPILE)
moduleDependency("lib_commonMain", DependencyScope.COMPILE)
moduleDependency("lib_jvmMain", DependencyScope.COMPILE)
libraryDependency("Gradle: org.jetbrains.kotlin:kotlin-stdlib:$kotlinVersion", DependencyScope.TEST)
libraryDependency("Gradle: org.jetbrains.kotlin:kotlin-stdlib-common:$kotlinVersion", DependencyScope.TEST)
libraryDependency("Gradle: org.jetbrains:annotations:13.0", DependencyScope.TEST)
moduleDependency("lib_commonTest", DependencyScope.TEST)
moduleDependency("lib_commonMain", DependencyScope.TEST)
moduleDependency("lib_jvmMain", DependencyScope.TEST)
sourceFolder("lib/src/jvmTest/kotlin", JavaSourceRootType.TEST_SOURCE)
sourceFolder("lib/src/jvmTest/resources", JavaResourceRootType.TEST_RESOURCE)
outputPath("lib/build/classes/kotlin/jvm/test", false)