Skip to content
CJ3021397-C\yyama edited this page Mar 31, 2024 · 3 revisions

junit-order Wiki!

JUnitテストケース範囲指定実行

JUnitテスト範囲実行をテストケースメソッドにアノテーションを付与して テストクラスアノテーションで範囲の実行もしくは、任意に指定するテストケース メソッドだけを実行する。

JUnit テストクラス使用例

@RunWith(OrderedRunner.class)
@TestRange(start=2, end=4)
public class HelloTest {
    @Test @Order(1)
    public void test1() {
      //
    }
    @Test @Order(2)
    public void test2() {
      //
    }
    @Test @Order(3)
    public void test3() {
      //
    }
    @Test @Order(4)
    public void test4() {
      //
    }
}

上記は、 @Order(2), @Order(3), @Order(4) のメソッドが実行される。

@TestRange(start=2)

の指定で、@Order(2) 以降のメソッドは実行される。

@TestRange(x={1, 3})

の指定で、@Order(1)と@Order(3)のメソッドだけが実行される x配列の指定をした場合、start, end の指定は無効である。

@Order : テスト順位アノテーション

  • テストケースメソッドに、実行する順位を指定する。
  • 属性 value でテスト実行する順位をする。"value="を省略可能
@Test
@Order(value=1)
public void testmethod1 {
   // test case 1
}
@Test
@Order(value=2)
public void testmethod2 {
   // test case 2
}

//value名省略
@Test
@Order(3)
public void testmethod3 {
   // test case 3
}

OrderedRunner:テスト範囲実行の為の BlockJUnit4ClassRunner 継承

  • @RunWith で指定するBlockJUnit4ClassRunner 継承クラス
  • @TestRange と共にテストクラス @RunWithアノテーションで指定する
 @RunWith(OrderedRunner.class)

@TestRange : テスト実行範囲指定アノテーション

  • @RunWith(OrderedRunner.class) と共にテストクラスに付与する。
  • @Order で指定したテストケースメソッドの順位に対して、テスト実行範囲または、選抜した順位のみを実行するように指定する。

1番目から4番目までを実行する場合

(@Order(1)のメソッドから@Order(4)のメソッド)

 @TestRange(start=1, end=4)

2番目以降、最後の番号までを実行する場合

@Order(2)のメソッド以降)

 @TestRange(start=2)

2番目、5番目、7番目のみを実行する場合は、x で配列を指定する。

@Order(2)のメソッド、@Order(5)のメソッド、@Order(7)のメソッド
  @TestRange(x={2, 5, 7})

配列を指定した場合、start, end の指定は無効で配列の順番で@Order のテストケースメソッドが実行される。