我正在尝试使用针对AllTests测试套件的类别运行JUnit4测试。在示例1中运行Suite3,而运行Suite2的示例2产生以下异常。
java.lang.Exception: Category annotations on Parameterized classes are not supported on individual methods.
我需要在执行测试时生成TestSuite。
有关如何纠正问题的任何建议? 感谢
示例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() {
}
答案 0 :(得分:1)
最新稳定版JUnit 4(4.12)中存在各种相关错误:
https://github.com/junit-team/junit4/issues/1203
有人为未发布的4.13-SNAPSHOT版本提供修复,您可以通过在https://github.com/junit-team/junit4克隆他们的GitHub仓库来构建和检查自己
但是,我自己运行了几个测试,并且必须得出结论:@Category注释在MathUtilTest类上使用时确实有效,但只有在注释类时,注释才会在单个测试方法上使用时被忽略。