2011-06-17 113 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