我有一大堆的參數JUnit4測試,所有看起來像:參數測試套件
@RunWith(Parameterized.class)
public class MyTestX {
private final MyParameter param;
public TestX(MyParameter param) {
this.param = param;
}
@Test
public void myTest() {
// Some test code
}
}
我想從不同的測試套件運行它們,每個與MyParameter不同的值。
我試過如下:
@RunWith(Suite.class)
@SuiteClasses({ MyTest1.class, MyTest2.class, ... })
public class MyTestSuite1 {
@Parameters
public static Collection<Object[]> data() {
Object[][] data = {{ new MyParameter(1))}};
return Arrays.asList(data);
}
}
但它不工作:我碰到一個「階級MyTestX沒有公共靜態參數的方法」。
有沒有辦法從測試套件中指定參數而不是測試用例? 我想避免爲每個測試創建一個新類,如果可能的話,爲每個測試套件創建一個新類。
我認爲要做到這一點,你不得不爲了兩套房和參數亞軍類擴展爲前捕捉到的參數數據,並把它傳遞給孩子跑步者,並且後者接收不是來自注釋方法的參數數據,而是來自套件跑步者。 – viaclectic