From 35fdfc9f050ff6f5c45523f7762c40442452376e Mon Sep 17 00:00:00 2001 From: Nikolay Krasko Date: Wed, 20 Jun 2018 15:27:42 +0300 Subject: [PATCH] Fix running inner classes from console #KT-24961 Fixed --- buildSrc/src/main/kotlin/tasks.kt | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/buildSrc/src/main/kotlin/tasks.kt b/buildSrc/src/main/kotlin/tasks.kt index a150f8fa89c..3ed5f8828b4 100644 --- a/buildSrc/src/main/kotlin/tasks.kt +++ b/buildSrc/src/main/kotlin/tasks.kt @@ -30,7 +30,8 @@ import java.lang.Character.isUpperCase fun Project.projectTest(taskName: String = "test", body: Test.() -> Unit = {}): Test = getOrCreateTask(taskName) { doFirst { - val patterns = filter.includePatterns + ((filter as? DefaultTestFilter)?.commandLineIncludePatterns ?: emptySet()) + val commandLineIncludePatterns = (filter as? DefaultTestFilter)?.commandLineIncludePatterns ?: emptySet() + val patterns = filter.includePatterns + commandLineIncludePatterns if (patterns.isEmpty() || patterns.any { '*' in it }) return@doFirst patterns.forEach { pattern -> var isClassPattern = false @@ -50,7 +51,13 @@ fun Project.projectTest(taskName: String = "test", body: Test.() -> Unit = {}): val classFileName = "$classFileNameWithoutExtension.class" if (isClassPattern) { - filter.includePatterns.add("$pattern$*") + val innerClassPattern = "$pattern$*" + if (pattern in commandLineIncludePatterns) { + commandLineIncludePatterns.add(innerClassPattern) + (filter as? DefaultTestFilter)?.setCommandLineIncludePatterns(commandLineIncludePatterns) + } else { + filter.includePatterns.add(innerClassPattern) + } } include {