diff options
Diffstat (limited to 'plugins/testng/src/com/theoryinpractice/testng/ui/actions/RerunFailedTestsAction.java')
-rw-r--r-- | plugins/testng/src/com/theoryinpractice/testng/ui/actions/RerunFailedTestsAction.java | 22 |
1 files changed, 18 insertions, 4 deletions
diff --git a/plugins/testng/src/com/theoryinpractice/testng/ui/actions/RerunFailedTestsAction.java b/plugins/testng/src/com/theoryinpractice/testng/ui/actions/RerunFailedTestsAction.java index a3538059b1db..597bb5983876 100644 --- a/plugins/testng/src/com/theoryinpractice/testng/ui/actions/RerunFailedTestsAction.java +++ b/plugins/testng/src/com/theoryinpractice/testng/ui/actions/RerunFailedTestsAction.java @@ -8,25 +8,26 @@ import com.intellij.execution.actions.JavaRerunFailedTestsAction; import com.intellij.execution.configurations.RunProfileState; import com.intellij.execution.runners.ExecutionEnvironment; import com.intellij.execution.testframework.AbstractTestProxy; +import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.module.Module; import com.intellij.openapi.project.Project; import com.intellij.openapi.ui.ComponentContainer; +import com.intellij.openapi.util.Computable; import com.intellij.psi.PsiClass; import com.intellij.psi.PsiElement; import com.intellij.psi.PsiMethod; import com.intellij.psi.PsiModifier; import com.intellij.psi.search.GlobalSearchScope; +import com.intellij.util.containers.ContainerUtil; import com.theoryinpractice.testng.configuration.SearchingForTestsTask; import com.theoryinpractice.testng.configuration.TestNGConfiguration; import com.theoryinpractice.testng.configuration.TestNGRunnableState; +import com.theoryinpractice.testng.util.TestNGUtil; import org.jetbrains.annotations.NotNull; import java.io.File; import java.net.ServerSocket; -import java.util.ArrayList; -import java.util.Collection; -import java.util.List; -import java.util.Map; +import java.util.*; public class RerunFailedTestsAction extends JavaRerunFailedTestsAction { @@ -53,6 +54,19 @@ public class RerunFailedTestsAction extends JavaRerunFailedTestsAction { return new SearchingForTestsTask(serverSocket, config, tempFile, client) { @Override protected void fillTestObjects(final Map<PsiClass, Collection<PsiMethod>> classes) throws CantRunException { + final HashMap<PsiClass, Collection<PsiMethod>> fullClassList = ContainerUtil.newHashMap(); + super.fillTestObjects(fullClassList); + for (final PsiClass aClass : fullClassList.keySet()) { + if (!ApplicationManager.getApplication().runReadAction(new Computable<Boolean>() { + @Override + public Boolean compute() { + return TestNGUtil.hasTest(aClass); + } + })) { + classes.put(aClass, fullClassList.get(aClass)); + } + } + final GlobalSearchScope scope = config.getConfigurationModule().getSearchScope(); final Project project = config.getProject(); for (AbstractTestProxy proxy : failedTests) { |