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

时间:2011-06-17 14:21:11

标签: 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
{

}

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

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

public class MySuiteA
{

}

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

我如何实现@ExcludeCategory实际上适用于套件?

干杯!

1 个答案:

答案 0 :(得分:3)

@ExcludeCategory应与 @Category 一起使用。

确保使用@Category(IgnoreForSpecialReasonA.class)注释忽略方法/类。