我正在使用classpath suite library自动运行项目中的所有测试,效果很好。

@RunWith(ClasspathSuite.class)
@SuiteTypes({RUN_WITH_CLASSES, TEST_CLASSES, JUNIT38_TEST_CLASSES})
@ClassnameFilters({"com.foo.bar.*"})
public class AllTests {
}


但是,每次我运行AllTests时,都会出现此错误:

java.lang.Exception: class 'com.foo.bar.AllTests' (possibly indirectly) contains itself as a SuiteClass


任何想法如何摆脱这一点?

是的,我已经阅读了JUnit: (possibly indirectly) contains itself as a SuiteClass但没有找到答案,因为无论如何我都不从AllTests继承。

最佳答案

只需将您的AllTests类移动到包com.foo

您已经选择了SuiteTypes=RUN_WITH_CLASSES(并将目标程序包设置为com.foo.bar),因此您的AllTests一遍又一遍地运行AllTests

10-05 22:18