Java JUnit4分类结果在@SuiteClasses和TestSuite之间有所不同

Java JUnit4分类结果在@SuiteClasses和TestSuite之间有所不同,java,junit4,Java,Junit4,我正在尝试对AllTests测试套件使用类别运行JUnit4测试。在示例1中,运行Suite3可以工作,而在示例2中运行Suite2会产生以下异常 java.lang.Exception: Category annotations on Parameterized classes are not supported on individual methods. 例2 @RunWith(Categories.class) @IncludeCategory(SlowTest.class) @Suit

我正在尝试对AllTests测试套件使用类别运行JUnit4测试。在示例1中,运行Suite3可以工作,而在示例2中运行Suite2会产生以下异常

java.lang.Exception: Category annotations on Parameterized classes are not supported on individual methods. 例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() {
    }

JUnit4(4.12)的最新稳定版本中存在各种相关的bug:

有人提交了一个未发布的4.13快照版本的修复程序,您可以通过在上克隆他们的GitHub repo来构建和检查该版本


然而,我自己运行了几个测试,并且得出结论@Category注释在MathUtilTest类上使用时确实有效,但只有在对该类进行注释时,注释才会在单个测试方法上使用时被忽略

谢谢。我希望对方法进行注释。将研究构建4.13罐。
@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() {
    }