0

这是我的测试方法,从数据提供者那里获取数据

 @Test(dataProvider = "csvFeed2")
public void testAddCaseFolderSource(@Optional("") String sourceName, @Optional("")                      String sourceDir, @Optional("") String folderLevel)
        throws Exception {

    System.out.println("sourceName.." + sourceName);
    System.out.println("sourceDir.." + sourceDir);
    System.out.println("sourceDir.." + folderLevel);

}

我的 csv 数据看起来像

strfiletyping_combo_B2,"D:\tmp\pstdata\date_range",100 strfiletyping_combo_B3,"D:\tmp\pstdata1\date_range",200 strfiletyping_combo_B4,"D:\tmp\pstdata\date_range",300 strfiletyping_combo_B5,"D:\tmp\ pstdata1\date_range",40

它工作正常。数据提供者按预期将数据注入测试方法。

现在的问题是,在我的 csv 中,如果其中一个记录中缺少列,例如

strfiletyping_combo_B3,"D:\tmp\pstdata1\date_range"

然后 TestNG 停止处理。即使有下一个记录,它也没有进行。

我的期望是,如果没有记录,那么它应该使用 @optional 参数中可用的任何内容,就像我们在传递参数时所做的那样。

如果有人能对此有所了解,那就太好了。

数据提供者代码是

try {
   csvReader = new CSVReader(new FileReader(csvDataPath));
   List<String[]> list = csvReader.readAll();
   String[][] dataArr = new String[list.size()][];
   dataArr = list.toArray(dataArr);
   return dataArr;
    } catch (Exception e) {
e.printStackTrace();
}
4

0 回答 0