我想运行包含各种测试类的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实际上适用于套件?
干杯!
答案 0 :(得分:3)
@ExcludeCategory
应与 @Category
一起使用。
确保使用@Category(IgnoreForSpecialReasonA.class)
注释忽略方法/类。