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.
This commit is contained in:
Ilya Matveev
2019-12-05 19:00:43 +07:00
parent cc3438f20c
commit 254864a49d
2 changed files with 7 additions and 5 deletions
@@ -2148,8 +2148,7 @@ class NewMultiplatformIT : BaseGradleIT() {
.resolve("build/reports/tests/${targetName}Test/classes/com.example.HelloTest.html") .resolve("build/reports/tests/${targetName}Test/classes/com.example.HelloTest.html")
.readText() .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 { targetsToTest.forEach {
checkUnitTestOutput(it) checkUnitTestOutput(it)
@@ -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.KotlinTestRunnerListener
import org.jetbrains.kotlin.gradle.internal.testing.TCServiceMessagesTestExecutor import org.jetbrains.kotlin.gradle.internal.testing.TCServiceMessagesTestExecutor
import org.jetbrains.kotlin.gradle.utils.injected import org.jetbrains.kotlin.gradle.utils.injected
import org.jetbrains.kotlin.gradle.utils.isGradleVersionAtLeast
import javax.inject.Inject import javax.inject.Inject
abstract class KotlinTest : AbstractTestTask() { abstract class KotlinTest : AbstractTestTask() {
@@ -22,7 +23,8 @@ abstract class KotlinTest : AbstractTestTask() {
@Optional @Optional
var targetName: String? = null var targetName: String? = null
@Input @Internal // Taken into account by excludePatterns.
@Deprecated("Use filter.excludePatterns instead.", ReplaceWith("filter.excludePatterns"))
var excludes = mutableSetOf<String>() var excludes = mutableSetOf<String>()
protected val filterExt: DefaultTestFilter protected val filterExt: DefaultTestFilter
@@ -33,10 +35,11 @@ abstract class KotlinTest : AbstractTestTask() {
} }
val includePatterns: Set<String> val includePatterns: Set<String>
@Internal get() = filterExt.includePatterns + filterExt.commandLineIncludePatterns @Input get() = filterExt.includePatterns + filterExt.commandLineIncludePatterns
@Suppress("DEPRECATION")
val excludePatterns: Set<String> val excludePatterns: Set<String>
@Internal get() = excludes @Input get() = excludes + if (isGradleVersionAtLeast(5, 0)) filterExt.excludePatterns else emptySet()
@get:Inject @get:Inject
open val fileResolver: FileResolver open val fileResolver: FileResolver