EA-89011 - IAE: ClassInheritorsSearch.search

This commit is contained in:
Anna.Kozlova
2016-09-26 18:14:53 +02:00
parent 971fdab483
commit 4e550620cd
2 changed files with 13 additions and 8 deletions
@@ -46,13 +46,16 @@ public class ConfigurationUtil {
GlobalSearchScope projectScopeWithoutLibraries = GlobalSearchScope.projectScope(project);
final GlobalSearchScope scope = projectScopeWithoutLibraries.intersectWith(testClassFilter.getScope());
ClassInheritorsSearch.search(testClassFilter.getBase(), scope, true, true, false).forEach(new ReadActionProcessor<PsiClass>() {
@Override
public boolean processInReadAction(PsiClass aClass) {
if (testClassFilter.isAccepted(aClass)) found.add(aClass);
return true;
}
});
final PsiClass base = testClassFilter.getBase();
if (base != null) {
ClassInheritorsSearch.search(base, scope, true, true, false).forEach(new ReadActionProcessor<PsiClass>() {
@Override
public boolean processInReadAction(PsiClass aClass) {
if (testClassFilter.isAccepted(aClass)) found.add(aClass);
return true;
}
});
}
// classes having suite() method
final PsiMethod[] suiteMethods = ApplicationManager.getApplication().runReadAction(
@@ -65,7 +65,9 @@ public class TestPackage extends TestObject {
SourceScope sourceScope = getSourceScope();
if (sourceScope != null && !ReadAction.compute(() -> JUnitUtil.isJUnit5(sourceScope.getGlobalSearchScope(), myProject))) {
try {
ConfigurationUtil.findAllTestClasses(getClassFilter(data), myClasses);
final TestClassFilter classFilter = getClassFilter(data);
LOG.assertTrue(classFilter.getBase() != null);
ConfigurationUtil.findAllTestClasses(classFilter, myClasses);
}
catch (CantRunException ignored) {}
}