Silk4J テストのグループ化

SilkTestCategories クラスを使用して、アノテーションを使用した Silk4J テストの実行、TrueLog の書き込み、およびテストのフィルタやグループ化を行うことができます。テスト クラスのカテゴリを定義して、Silk4J テストをこれらのカテゴリにグループ化することで、指定したカテゴリ、またはカテゴリのサブタイプに属しているテストのみを実行できます。詳細については、「Grouping tests using JUnit categorie」(JUnit カテゴリを使用したテストのグループ化) を参照してください。

Silk4J テストをカテゴリに含めるには、@IncludeCategory アノテーションを使用します。

カテゴリ SilkTestCategories クラスを使用して、カテゴリに含まれる Silk4J テストに対して TrueLog を書き込むことができます。また、SilkTestSuite クラスを使用して TruelLog を書き込みこともできます。詳細については、「コマンド ラインからテスト メソッドを再生する」を参照してください。

次の例では、カテゴリに含まれる Silk4J テストを実行する方法を紹介します。

テスト スクリプトの始めに次のような行を追加して、Category クラスをインポートしてください。
import org.junit.experimental.categories.Category;
カテゴリは、クラス、またはインターフェイスとして実装することができます。たとえば、次のようになります。
public interface FastTests {}
  public interface SlowTests {}
カテゴリを使って、クラス全体にフラグを付けることができます。次のサンプル コードでは、クラスのすべてのメソッドが SlowTests カテゴリでフラグ付けされています。
@Category( { SlowTests.class})
public class A {
  @Test
  public void a() {
    ...
  }

  @Test
  public void b() {
    ...
  }
}
  
また、カテゴリを使って、クラスの個々のメソッドにフラグを付けることもできます。次のサンプル コードでは、メソッド d だけが FastTests カテゴリでフラグ付けされています。
public class B {
  @Test
  public void c() {
    ...
  }

  @Category(FastTests.class)
  @Test
  public void d() {
    ...
  }
}
複数のカテゴリを使って、クラスまたはメソッドにフラグを付けることができます。
@Category( { SlowTests.class, FastTests.class })
public static class C {
  @Test
  public void e() {
    ...
  }
}
特定のカテゴリのテストを実行するには、テスト スイートを用意する必要があります。
@RunWith(SilkTestCategories.class)
@IncludeCategory(SlowTests.class)
@SuiteClasses( { A.class, C.class })
// Note: SilkTestCategories is a kind of Suite
public static class SlowTestSuite {}