Test () { List<Class<?>> innerClasses = collectDeclaredClasses(testClass, false); Set<Class<?>> unprocessedInnerClasses = unprocessedClasses(innerClasses); if (unprocessedInnerClasses.isEmpty()) { if (!innerClasses.isEmpty() && !hasTestMethods(testClass)) { isFakeTest = true; return new JUnit3RunnerWithInners.FakeEmptyClassTest(testClass); } else { return new TestSuite(testClass.asSubclass(TestCase.class)); } } else if (unprocessedInnerClasses.size() == innerClasses.size()) { return createTreeTestSuite(testClass); } else { return new TestSuite(testClass.asSubclass(TestCase.class)); } }