java TestNG:在dataProvider的一次迭代后进行下一次测试
所以我有两个测试,一个是检查注册test01_signIn
,如果通过了,它将进入第二个测试test02_CheckNewsStandElements
,它检查主页元素的可见性,唯一的问题是第一个测试有一个如下所示的数据提供程序:
@Test(dataProvider = "Data")
public void test01_signIn(String idMedia, String nomMedia, String idSSO, String mdpSSO, String lien) {
//Test
}
@Test
public void test02_CheckNewsStandElements(){
WebDriverWait wait = new WebDriverWait(driver,5);
WebElement modalCloseButton = null;
modalCloseButton = nsp.modalCloseButton(driver);
try{
wait.until(ExpectedConditions.visibilityOf(modalCloseButton));
}catch(TimeoutException e){
System.out.println("The Element isn't visible");
}
}
@DataProvider(name="Data")
public Object [][] getLists() throws IOException, GeneralSecurityException {
Object [][] objects = newEDLI.importData().clone();
return objects;
}
我得到的结果更像是:
Test1
Test1
Test1
...
Test2
Test2
Test2
当我在寻找这样的结果时:
Test1 Test2 Test1 Test2
# 1 楼答案
当您使用
@DataProvider
将数据注入测试方法时,TestNg将在一行中运行此方法,其数量是您拥有的数据的两倍。此外,测试方法之间没有依赖关系。因此,您的test01_signIn
独立于test02_CheckNewsStandElements
执行您可以考虑使用{< CD4>}来组织执行顺序。在这种情况下,您将数据注入测试类构造函数(数据提供程序应该是静态的),并且您能够管理测试方法执行的顺序:
注意:尽管测试将以正确的顺序执行,但在测试报告中,它们仍将被分组和排序