这是我的测试方法,从数据提供者那里获取数据
@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 param中可用的任何内容,就像我们传递参数时那样。
如果有人可以对此有所了解,那会很好。
数据提供者代码
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();
}