From 254864a49de5abbbff0d16f5d62158964e004946 Mon Sep 17 00:00:00 2001 From: Ilya Matveev Date: Thu, 5 Dec 2019 19:00:43 +0700 Subject: [PATCH] Gradle, native, JS: Support excluding tests using TestFilter TestFilter.excludePatterns was introduced in Gradle 5.0. This patch adds support for this API in native and JS test tasks and deprecates the old property used for test excludes. --- .../org/jetbrains/kotlin/gradle/NewMultiplatformIT.kt | 3 +-- .../org/jetbrains/kotlin/gradle/tasks/KotlinTest.kt | 9 ++++++--- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/NewMultiplatformIT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/NewMultiplatformIT.kt index 00f0346c7cd..2583034266d 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/NewMultiplatformIT.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/NewMultiplatformIT.kt @@ -2148,8 +2148,7 @@ class NewMultiplatformIT : BaseGradleIT() { .resolve("build/reports/tests/${targetName}Test/classes/com.example.HelloTest.html") .readText() - if (targetName != nativeHostTargetName && targetName != "ios") // TODO: fix exclude patterns for the Kotlin/Native test tasks - assertTrue("secondTest" !in classReportHtml, "Test report should not contain 'secondTest':\n$classReportHtml") + assertTrue("secondTest" !in classReportHtml, "Test report should not contain 'secondTest':\n$classReportHtml") } targetsToTest.forEach { checkUnitTestOutput(it) diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/tasks/KotlinTest.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/tasks/KotlinTest.kt index 831cb116655..69dbf96adee 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/tasks/KotlinTest.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/tasks/KotlinTest.kt @@ -15,6 +15,7 @@ import org.gradle.process.internal.ExecHandleFactory import org.jetbrains.kotlin.gradle.internal.testing.KotlinTestRunnerListener import org.jetbrains.kotlin.gradle.internal.testing.TCServiceMessagesTestExecutor import org.jetbrains.kotlin.gradle.utils.injected +import org.jetbrains.kotlin.gradle.utils.isGradleVersionAtLeast import javax.inject.Inject abstract class KotlinTest : AbstractTestTask() { @@ -22,7 +23,8 @@ abstract class KotlinTest : AbstractTestTask() { @Optional var targetName: String? = null - @Input + @Internal // Taken into account by excludePatterns. + @Deprecated("Use filter.excludePatterns instead.", ReplaceWith("filter.excludePatterns")) var excludes = mutableSetOf() protected val filterExt: DefaultTestFilter @@ -33,10 +35,11 @@ abstract class KotlinTest : AbstractTestTask() { } val includePatterns: Set - @Internal get() = filterExt.includePatterns + filterExt.commandLineIncludePatterns + @Input get() = filterExt.includePatterns + filterExt.commandLineIncludePatterns + @Suppress("DEPRECATION") val excludePatterns: Set - @Internal get() = excludes + @Input get() = excludes + if (isGradleVersionAtLeast(5, 0)) filterExt.excludePatterns else emptySet() @get:Inject open val fileResolver: FileResolver