diff --git a/java/execution/impl/src/com/intellij/execution/junit/JUnitUtil.java b/java/execution/impl/src/com/intellij/execution/junit/JUnitUtil.java index 3f5d97a37fa4..9e088f81785b 100644 --- a/java/execution/impl/src/com/intellij/execution/junit/JUnitUtil.java +++ b/java/execution/impl/src/com/intellij/execution/junit/JUnitUtil.java @@ -30,6 +30,7 @@ import com.intellij.psi.search.searches.ClassInheritorsSearch; import com.intellij.psi.util.InheritanceUtil; import com.intellij.psi.util.PsiClassUtil; import com.intellij.psi.util.PsiTreeUtil; +import com.intellij.testIntegration.JavaTestFramework; import com.intellij.testIntegration.TestFramework; import com.intellij.util.Processor; import org.jetbrains.annotations.NonNls; @@ -279,16 +280,17 @@ public class JUnitUtil { public static class TestMethodFilter implements Condition { private final PsiClass myClass; - private final TestFramework framework; + private final JavaTestFramework framework; public TestMethodFilter(final PsiClass aClass) { myClass = aClass; - framework = TestFrameworks.detectFramework(aClass); + TestFramework framework = TestFrameworks.detectFramework(aClass); + this.framework = (framework instanceof JavaTestFramework) ? (JavaTestFramework)framework : null; } public boolean value(final PsiMethod method) { return framework != null - ? framework.isTestMethod(method) + ? framework.isTestMethod(method, myClass) : isTestMethod(MethodLocation.elementInClass(method, myClass)); } } diff --git a/java/java-impl/src/com/intellij/testIntegration/JavaTestFramework.java b/java/java-impl/src/com/intellij/testIntegration/JavaTestFramework.java index c34c7fafd697..bf46ae119e90 100644 --- a/java/java-impl/src/com/intellij/testIntegration/JavaTestFramework.java +++ b/java/java-impl/src/com/intellij/testIntegration/JavaTestFramework.java @@ -156,4 +156,10 @@ public abstract class JavaTestFramework implements TestFramework { public boolean isSingleConfig() { return false; } + + public boolean isTestMethod(PsiMethod method, PsiClass myClass) { + return isTestMethod(method); + } + + } diff --git a/plugins/junit/src/com/intellij/execution/junit/JUnit4Framework.java b/plugins/junit/src/com/intellij/execution/junit/JUnit4Framework.java index 3ee3f39d46e9..aa8af2fc46ff 100644 --- a/plugins/junit/src/com/intellij/execution/junit/JUnit4Framework.java +++ b/plugins/junit/src/com/intellij/execution/junit/JUnit4Framework.java @@ -18,6 +18,7 @@ package com.intellij.execution.junit; import com.intellij.CommonBundle; import com.intellij.codeInsight.AnnotationUtil; import com.intellij.codeInsight.intention.AddAnnotationFix; +import com.intellij.execution.junit2.info.MethodLocation; import com.intellij.icons.AllIcons; import com.intellij.ide.fileTemplates.FileTemplateDescriptor; import com.intellij.openapi.application.ApplicationManager; @@ -127,6 +128,11 @@ public class JUnit4Framework extends JavaTestFramework { return element instanceof PsiMethod && JUnitUtil.getTestMethod(element) != null; } + @Override + public boolean isTestMethod(PsiMethod method, PsiClass myClass) { + return JUnitUtil.isTestMethod(MethodLocation.elementInClass(method, myClass)); + } + public FileTemplateDescriptor getSetUpMethodFileTemplateDescriptor() { return new FileTemplateDescriptor("JUnit4 SetUp Method.java"); }