`
libin0019
  • 浏览: 237506 次
  • 性别: Icon_minigender_1
  • 来自: 沈阳
社区版块
存档分类
最新评论

采用Iterator<Object[]> dataProvide()方式的数据驱动导致调用顺序的错误!

 
阅读更多

TestNG数据驱动@DataProvider的方式有两种:

 

第一种: Iterator<Object[]> dataProvide()

第二种: Object[][] dataProvide()

 

其中,当存在@BeforeGroups、@AfterGroups方法时,第一种形式的调用顺序错误:@AfterGroups方法会在函数第一组数据结束后调用。(应该将所有数据都执行一遍才算是group执行结束。) 因此,只能采用Object[][] dataProvide()形式的@DataProvider。

代码修改如下:

修改前:

 

@DataProvider(name = "data")
public Iterator<String[]> data()
{
      List<String[]> list = ...
      return list.iterator();
}
 

修改后:

 

@DataProvider(name = "data")
public Object[][] data()
{
        List<String[]> list = ...
        String[][] result = new String[list.size()][];
        Return list.toArray(result);  
}
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics