在测试套件中通过@ExcludeCategory忽略junit测试

nem*_*moo 6 java testing junit continuous-integration

我想运行包含各种测试类的Junit测试套件.

在所有测试中,我想排除用特定注释注释的测试方法.

我知道@Ignore注释,但我不想在这里使用它,因为如果我从不同的测试套件中调用测试,我希望能够忽略不同的测试方法.

我试过了它并没有用.在没有@ExcludeCategory(IgnoreMeForSpecialReason.class)的情况下运行我的套件运行与使用@ExcludeCategory运行相同数量的测试用例(IgnoreMeForSpecialReason.class)

为了说明它:

这套房

//version 1
@RunWith(Categories.class)
@ExcludeCategory(IgnoreForSpecialReasonA.class)
@SuiteClasses({
    // add your test classes here
    Module1Test.class,
    Module2Test.class,
    Module3Test.class
})

public class MySuiteA
{

}
Run Code Online (Sandbox Code Playgroud)

运行与此版本套件相同数量的测试:

//version 2
@RunWith(Categories.class)
//@ExcludeCategory(IgnoreForSpecialReasonA.class)
@SuiteClasses({
    // add your test classes here
    Module1Test.class,
    Module2Test.class,
    Module3Test.class
})

public class MySuiteA
{

}
Run Code Online (Sandbox Code Playgroud)

Module1Test的一种测试方法使用@IgnoreForSpecialReasonA Annotation进行注释.应该在我的示例的版本1中跳过该方法,但它会运行.

我怎样才能实现@ExcludeCategory实际上适用于套件?

干杯!

卢声远*_* Lu 3

@ExcludeCategory应该与@Category.

确保您的忽略方法/类带有注释@Category(IgnoreForSpecialReasonA.class)