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
|
package org.jetbrains.kotlin.idea.run
|
||||||
|
|
||||||
import com.intellij.execution.Location
|
import com.intellij.execution.Location
|
||||||
|
import com.intellij.execution.PsiLocation
|
||||||
import com.intellij.execution.actions.ConfigurationContext
|
import com.intellij.execution.actions.ConfigurationContext
|
||||||
import com.intellij.execution.actions.ConfigurationFromContext
|
import com.intellij.execution.actions.ConfigurationFromContext
|
||||||
import com.intellij.execution.junit.InheritorChooser
|
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.service.execution.ExternalSystemRunConfiguration
|
||||||
import com.intellij.openapi.externalSystem.util.ExternalSystemApiUtil
|
import com.intellij.openapi.externalSystem.util.ExternalSystemApiUtil
|
||||||
import com.intellij.openapi.module.Module
|
import com.intellij.openapi.module.Module
|
||||||
@@ -17,7 +19,9 @@ import com.intellij.psi.PsiClass
|
|||||||
import com.intellij.psi.PsiElement
|
import com.intellij.psi.PsiElement
|
||||||
import com.intellij.psi.PsiMethod
|
import com.intellij.psi.PsiMethod
|
||||||
import org.jetbrains.kotlin.idea.caches.project.isNewMPPModule
|
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.project.platform
|
||||||
|
import org.jetbrains.kotlin.idea.util.module
|
||||||
import org.jetbrains.kotlin.platform.TargetPlatform
|
import org.jetbrains.kotlin.platform.TargetPlatform
|
||||||
import org.jetbrains.plugins.gradle.execution.test.runner.TestMethodGradleConfigurationProducer
|
import org.jetbrains.plugins.gradle.execution.test.runner.TestMethodGradleConfigurationProducer
|
||||||
import org.jetbrains.plugins.gradle.execution.test.runner.applyTestConfiguration
|
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 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 ->
|
mppTestTasksChooser.multiplatformChooseTasks(context.project, dataContext, classes.asList()) { tasks ->
|
||||||
val configuration = fromContext.configuration as ExternalSystemRunConfiguration
|
val configuration = fromContext.configuration as ExternalSystemRunConfiguration
|
||||||
val settings = configuration.settings
|
val settings = configuration.settings
|
||||||
|
|
||||||
val result = settings.applyTestConfiguration(context.module, tasks, *classes) {
|
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)
|
settings.externalProjectPath = ExternalSystemApiUtil.getExternalProjectPath(context.module)
|
||||||
|
|||||||
Reference in New Issue
Block a user