运行jUnit运行程序列表

时间:2013-02-28 16:11:33

标签: junit junit-runner

我有一些实质上看起来像

的测试套件
@Test
public void test1_2() {
    test(1,2);
}
@Test
public void test1_3() {
    test(1,3);
}
@Test
public void test4_5() {
    test(4,5);
}
@Test
public void test4_9() {
    test(4,9);
}

// and so forth

private void test(int i, int j) throws AssertionError{
    // ...
}

(这不是实际测试,但实质上,每个@Test方法只调用一个方法)

所以我的想法是,我可以将@RunWith用于接受List BlockJUnit4ClassRunner的自定义jUnit Runner

这将如何实现?或者有更好的方法吗?

2 个答案:

答案 0 :(得分:1)

这让我觉得应该用Theories做些什么。否则,您可以使用Enclosed来创建多个内部类,每个内部类都有自己的运行程序。

答案 1 :(得分:1)

为什么不使用@Parameter?

@RunWith(Parameterized.class)
public class YourTest{

 private int i;
 private int j;

 public Parameter(int i, int j) {
    this.i= i;
    this.j= j;
 }

 @Parameters
 public static Collection<Object[]> data() {
      Object[][] data = new Object[][] { { 1, 2 }, { 1,3 }, { 4,5 }, { 4,9 } };
      return Arrays.asList(data);
 }

 @Test
 public void test() throws InterruptedException {
    //use i & j
 } 
}