Remove target name from gradle test filters.
Issue #KT-36909 Fixed
This commit is contained in:
+18
-1
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user