JUnit 4で特定のカテゴリに属する​​すべてのテストを実行する方法 質問する

JUnit 4で特定のカテゴリに属する​​すべてのテストを実行する方法 質問する

JUnit 4.8には「カテゴリー」と呼ばれる便利な新機能があり、特定の種類のテストをグループ化することができます。これは、例えば、遅いテストと速いテストを別々に実行する場合などに非常に便利です。JUnit 4.8 リリースノートただし、特定のカテゴリで注釈が付けられたすべてのテストを実際に実行する方法を知りたいと思います。

JUnit 4.8 リリース ノートには、SuiteClasses アノテーションによって特定のカテゴリから実行するテストを選択するスイート定義の例が次のように示されています。

@RunWith(Categories.class)
@IncludeCategory(SlowTests.class)
@SuiteClasses( { A.class, B.class }) // Note that Categories is a kind of Suite
public class SlowTestSuite {
  // Will run A.b and B.c, but not A.a
}

SlowTests カテゴリ内のすべてのテストを実行する方法をご存知の方はいませんか? SuiteClasses アノテーションが必要であるようです...

ベストアンサー1

目的を達成できる 1 つの方法を見つけましたが、これは JUnit の一部ではない ClassPathSuite ライブラリに依存しているため、最善の解決策ではないと思います。

低速テスト用のテスト スイートを次のように定義します。

@RunWith(Categories.class)
@Categories.IncludeCategory(SlowTests.class)
@Suite.SuiteClasses( { AllTests.class })
public class SlowTestSuite {
}

AllTests クラスは次のように定義されます:

@RunWith(ClasspathSuite.class)
public class AllTests {
}

ClassPathSuiteクラスを使用する必要がありましたクラスパススイートプロジェクトをここに追加します。テストを含むすべてのクラスが見つかります。

おすすめ記事