junit: check if inner class runnable

This commit is contained in:
Anna Kozlova
2018-01-30 11:33:50 +03:00
parent 52639c2a42
commit 51203e2113
@@ -163,16 +163,17 @@ public class JUnitUtil {
if (isJUnit5(psiClass) && isJUnit5TestClass(psiClass, checkAbstract)) {
return true;
}
if (!PsiClassUtil.isRunnableClass(psiClass, true, checkAbstract)) return false;
final PsiClass topLevelClass = PsiTreeUtil.getTopmostParentOfType(psiClass, PsiClass.class);
if (topLevelClass != null) {
final PsiAnnotation annotation = AnnotationUtil.findAnnotationInHierarchy(topLevelClass, Collections.singleton(RUN_WITH));
if (annotation != null && !isInheritorOrSelfRunner(annotation, RUNNERS_REQUIRE_ANNOTATION_ON_TEST_METHOD)) {
if (annotation != null && !isInheritorOrSelfRunner(annotation, RUNNERS_UNAWARE_OF_INNER_CLASSES)) {
return true;
}
}
if (!PsiClassUtil.isRunnableClass(psiClass, true, checkAbstract)) return false;
if (AnnotationUtil.isAnnotated(psiClass, RUN_WITH, CHECK_HIERARCHY)) return true;
if (checkForTestCaseInheritance && isTestCaseInheritor(psiClass)) return true;