我有一堆参数化的 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 类上没有公共静态参数方法”。
有没有办法从测试套件而不是测试用例中指定参数?如果可能的话,我想避免为每个测试、每个测试套件创建一个新类。