From 288b080dd74324bd2cbb5e4df50b1583d0b62242 Mon Sep 17 00:00:00 2001 From: Anna Kozlova Date: Fri, 11 Apr 2014 21:21:04 +0200 Subject: [PATCH] test finder: accept potential tests as junit4 doesn't contain features of test until it contains test methods (IDEA-120123) --- .../com/intellij/testIntegration/JavaTestFinder.java | 2 +- .../src/com/intellij/codeInsight/TestFrameworks.java | 1 + .../com/intellij/codeInsight/TestFrameworksImpl.java | 11 +++++++++++ 3 files changed, 13 insertions(+), 1 deletion(-) diff --git a/java/java-impl/src/com/intellij/testIntegration/JavaTestFinder.java b/java/java-impl/src/com/intellij/testIntegration/JavaTestFinder.java index 99ab4cec6de9..b9c297ab3b16 100644 --- a/java/java-impl/src/com/intellij/testIntegration/JavaTestFinder.java +++ b/java/java-impl/src/com/intellij/testIntegration/JavaTestFinder.java @@ -101,7 +101,7 @@ public class JavaTestFinder implements TestFinder { for (String eachName : names) { if (pattern.matcher(eachName).matches()) { for (PsiClass eachClass : cache.getClassesByName(eachName, scope)) { - if (TestFrameworks.getInstance().isTestClass(eachClass)) { + if (TestFrameworks.getInstance().isPotentialTestClass(eachClass)) { classesWithProximities.add( new Pair(eachClass, TestFinderHelper.calcTestNameProximity(klassName, eachName))); } diff --git a/java/java-psi-api/src/com/intellij/codeInsight/TestFrameworks.java b/java/java-psi-api/src/com/intellij/codeInsight/TestFrameworks.java index f5835193a41d..272edbc9ce18 100644 --- a/java/java-psi-api/src/com/intellij/codeInsight/TestFrameworks.java +++ b/java/java-psi-api/src/com/intellij/codeInsight/TestFrameworks.java @@ -29,6 +29,7 @@ public abstract class TestFrameworks { } public abstract boolean isTestClass(PsiClass psiClass); + public abstract boolean isPotentialTestClass(PsiClass psiClass); @Nullable public abstract PsiMethod findOrCreateSetUpMethod(PsiClass psiClass); diff --git a/java/java-psi-impl/src/com/intellij/codeInsight/TestFrameworksImpl.java b/java/java-psi-impl/src/com/intellij/codeInsight/TestFrameworksImpl.java index ee24b932bf00..15e887cfc04e 100644 --- a/java/java-psi-impl/src/com/intellij/codeInsight/TestFrameworksImpl.java +++ b/java/java-psi-impl/src/com/intellij/codeInsight/TestFrameworksImpl.java @@ -42,6 +42,17 @@ public class TestFrameworksImpl extends TestFrameworks { return false; } + @Override + public boolean isPotentialTestClass(PsiClass psiClass) { + final TestFramework[] testFrameworks = Extensions.getExtensions(TestFramework.EXTENSION_NAME); + for (TestFramework framework : testFrameworks) { + if (framework.isPotentialTestClass(psiClass)) { + return true; + } + } + return false; + } + @Override @Nullable public PsiMethod findOrCreateSetUpMethod(final PsiClass psiClass) {