From 9eab75650c69da22f9797bf5912aeae3c2b98d87 Mon Sep 17 00:00:00 2001 From: Konstantin Tskhovrebov Date: Tue, 3 Mar 2020 14:32:49 +0300 Subject: [PATCH] Remove target name from gradle test filters. Issue #KT-36909 Fixed --- ...inTestMethodGradleConfigurationProducer.kt | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/idea/idea-gradle/src/org/jetbrains/kotlin/idea/run/AbstractKotlinTestMethodGradleConfigurationProducer.kt b/idea/idea-gradle/src/org/jetbrains/kotlin/idea/run/AbstractKotlinTestMethodGradleConfigurationProducer.kt index 10eb101448d..c762950eba9 100644 --- a/idea/idea-gradle/src/org/jetbrains/kotlin/idea/run/AbstractKotlinTestMethodGradleConfigurationProducer.kt +++ b/idea/idea-gradle/src/org/jetbrains/kotlin/idea/run/AbstractKotlinTestMethodGradleConfigurationProducer.kt @@ -6,9 +6,11 @@ package org.jetbrains.kotlin.idea.run import com.intellij.execution.Location +import com.intellij.execution.PsiLocation import com.intellij.execution.actions.ConfigurationContext import com.intellij.execution.actions.ConfigurationFromContext import com.intellij.execution.junit.InheritorChooser +import com.intellij.execution.junit2.PsiMemberParameterizedLocation import com.intellij.openapi.externalSystem.service.execution.ExternalSystemRunConfiguration import com.intellij.openapi.externalSystem.util.ExternalSystemApiUtil import com.intellij.openapi.module.Module @@ -17,7 +19,9 @@ import com.intellij.psi.PsiClass import com.intellij.psi.PsiElement import com.intellij.psi.PsiMethod import org.jetbrains.kotlin.idea.caches.project.isNewMPPModule +import org.jetbrains.kotlin.idea.facet.externalSystemTestTasks import org.jetbrains.kotlin.idea.project.platform +import org.jetbrains.kotlin.idea.util.module import org.jetbrains.kotlin.platform.TargetPlatform import org.jetbrains.plugins.gradle.execution.test.runner.TestMethodGradleConfigurationProducer import org.jetbrains.plugins.gradle.execution.test.runner.applyTestConfiguration @@ -76,12 +80,25 @@ abstract class AbstractKotlinMultiplatformTestMethodGradleConfigurationProducer ) { val dataContext = MultiplatformTestTasksChooser.createContext(context.dataContext, psiMethod.name) + val availableTargets = + classes + .mapNotNull { psiClass -> psiClass.module } + .flatMap { module -> module.externalSystemTestTasks() } + .map { extTask -> extTask.targetName } + .distinct() + mppTestTasksChooser.multiplatformChooseTasks(context.project, dataContext, classes.asList()) { tasks -> val configuration = fromContext.configuration as ExternalSystemRunConfiguration val settings = configuration.settings val result = settings.applyTestConfiguration(context.module, tasks, *classes) { - createTestFilterFrom(context.location, it, psiMethod, true) + var filters = createTestFilterFrom(context.location, it, psiMethod, true) + if (context.location is PsiMemberParameterizedLocation) { + availableTargets.forEach { targetName -> + filters = filters.replace("[*$targetName*]", "") + } + } + filters } settings.externalProjectPath = ExternalSystemApiUtil.getExternalProjectPath(context.module)