我正在尝试针对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/

10-10 17:18