2011-06-17 90 views
6

我想运行包含各种测试类的Junit测试套件。在测试套件中忽略通过@ExcludeCategory的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 
{ 

} 

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

我如何实现@ExcludeCategory实际上与套件一起使用?

干杯!

回答

3

@ExcludeCategory应与@Category一起使用。

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

+0

就是这样,我只是直接注释了该方法,而不是通过@Category注释来完成。谢谢! – nemoo