我正在尝试针对AllTests测试套件使用类别运行JUnit4测试。在运行Suite3的示例1中,运行Suite2的示例2产生以下异常。
java.lang.Exception: Category annotations on Parameterized classes are not supported on individual methods.
I need to generate the TestSuite as the test is executed.
Any suggestions for how to correct the problem?Thanks
example 1
@RunWith(Categories.class)
@IncludeCategory(SlowTest.class)
@SuiteClasses(AllTests3.class)
public class Suite3 {
}
@RunWith(Suite.class)
@SuiteClasses({
MathUtilTest.class, MathUtil2Test.class
})
public class AllTests3 {
}
例子2
@RunWith(Categories.class)
@IncludeCategory(SlowTest.class)
@SuiteClasses(AllTests2.class)
public class Suite2 {
}
public final class AllTests2 {
public static TestSuite suite() {
final TestSuite result = new TestSuite();
result.addTest(new JUnit4TestAdapter(MathUtilTest.class));
result.addTest(new JUnit4TestAdapter(MathUtil2Test.class));
return result;
}
private AllTests2() {
}
最佳答案
最新稳定版本的JUnit 4(4.12)中存在各种相关的错误:
https://github.com/junit-team/junit4/issues/1203
有人提交了针对未发布的4.13-SNAPSHOT版本的修复程序,您可以通过在https://github.com/junit-team/junit4上克隆其GitHub存储库来构建并签出您自己。
但是,我自己进行了一些测试,必须得出结论:@Category批注在您的MathUtilTest类上使用时可以正常工作,但只有在对类进行了批注的情况下,当在单独的测试方法上使用时,该批注才会被忽略。
关于java - @SuiteClasses与TestSuite之间的JUnit4 Categories结果不同,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44708244/