JUnit Categorie不会运行某些测试

时间:2013-10-29 08:24:58

标签: java junit categories powermock

我有一个测试项目。我为每个包设置了具有Suite运行器的AllTests类,并且我有一个聚合所有其他AllTest类的主AllTest。主人也是Suite

我定义了一个接口IntegrationTest和一个IntegrationTestSuite类。 IntegrationTestSuiteCategoriesSuiteClass运行,我指定了主AllTests,并在IncludeCategory添加了IntegrationTest.class注释。在几个测试中,我在类级别使用注释@Category(IntegrationTest.class)来包含集成套件中的一些测试。

我有几个运行PowerMockRunner的测试类,以及@Category(IntegraionTest.class)的注释。我的问题基本上是,其中一些测试是由我的Gradle构建执行的,有些是刚跳过的。如果我删除了跳过测试的PrepareForTest注释,我会收到一条错误消息,指出powermock没有正确显示,并且这些错误消息也显示在报告中,否则只是沉默。

关于这一点的奇怪之处在于,在短时间内,当我在Eclipse中运行相同的套件时,它能够找到并运行这些测试gradle跳过。但是过了一段时间,Eclipse JUnit运行程序也忘记了那些测试,现在运行套件时它不会运行它们。如果我直接运行这些测试,它们会成功运行。

知道我做错了什么,或者我在哪里可以查看出错的地方?使用gradle --stacktrace或--debug开关没有帮助,输出中没有关于这些测试的信息。

谢谢!

1 个答案:

答案 0 :(得分:1)

我提到我在测试中使用PowerMock。事实证明,PowerMockRunner将IntegrationTest接口类加载到另一个类加载器,而不是套件的类加载器。这是,junit的isAssignableFrom测试将在确定要运行的测试时失败。 - >缺少@PowerMockIgnore的一个条目。