目前,我使用@DataProvider
从excel读取数据并将其传递给只有一个 @Test
。通常,此数据包含测试用例的执行流程,这使我能够并行运行不同的测试用例,从而消除对修改testng.xml
的依赖。
上述方法的问题是我无法在外部确定优先级或维护依赖性。有没有办法,我可以从另一个类中启动包含在TestNG类中的@Test
以及参数,这样我就可以保持excel表中提到的依赖关系。
答案 0 :(得分:1)
@Factory
带注释的方法可以提供帮助
您可以在其中调用其他测试类的构造函数,然后在@Test
,@Before*
和@After*
带注释的方法中访问参数。
public class MainProvider {
@Factory(dataProvider = "main", dataProviderClass = MainProvider.class)
public Object[] prepare(ParameterType first, ParameterType second) {
return new Object[]{new SimpleTest(firstParameter, secondParameter)};
}
@DataProvider(name = "main")
public Iterator<Object[]> dataProvider() {
List<Object[]> parameters = new ArrayList<>();
//Fill it with your data (this can be, of course, in a loop):
parameters.add(new Object[] {parameter1, anotherParameter1});
parameters.add(new Object[] {parameter2, anotherParameter2});
return parameters.iterator();
}
}