情况:我有两个测试 a() 和 b()。使用“dependsOnMethods”参数使 b() 依赖于 a()。我对这两个测试都有不同的数据集。有没有办法确保在执行测试时保留数据的顺序?
例子:
@DataProvider(name = "test1")
public Object[][] createData1() {
return new Object[][] {
{ "Google" },
{ "Microsoft"},
};
}
@DataProvider(name = "test2")
public Object[][] createData2() {
return new Object[][] {
{ "Apple"},
{ "Yahoo"},
};
}
@Test(dataProvider = "test1")
public void verifyData1(String n1) {
System.out.println(n1);
}
@Test(dataProvider = "test2", dependsOnMethods="verifyData1")
public void verifyData2(String n1) {
System.out.println(n1);
}
我希望结果始终是 Google、Apple、Microsoft、Yahoo。或微软、雅虎、谷歌、苹果
但不是 Google、Yahoo、Microsoft、Apple 或 Google、Microsoft、Apple、Yahoo。
这意味着如果 test1 使用来自其数据提供者的第一组参数运行,则 test2 也应该使用来自其数据提供者的第一组参数运行。test1 的 dataprovider 中的第二组参数是否在第一组之前运行并不重要,只要第二个测试在运行第一组之前也使用其 dataprovider 中的第二组参数运行即可。有没有办法做到这一点?
刚刚意识到这可以通过使用 group-by-instances 参数来解决。(我在我的 testng xml 中找到了一个选项,因为我使用的是旧版本。)。我将尝试升级我的 testNg 并发布更新。