这是我的测试方法,从数据提供者那里获取数据
@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();
}