2011-06-17 6 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 Annotationアノテーションが付けられています。そのメソッドは、私の例のversion1ではスキップする必要がありますが、実行されています。

どのように@ExcludeCategoryはスイートで実際に動作するのですか?

乾杯!

答えて

3

は、@Categoryで動作します。

無視するメソッド/クラスに@Category(IgnoreForSpecialReasonA.class)という注釈が付いていることを確認してください。

+0

これは、@Categoryアノテーションを使用する代わりに、メソッドに直接注釈を付けるだけでした。ありがとう! – nemoo

関連する問題