如果参数和参数不匹配,TestNG DataProvider将停止处理

时间:2013-09-17 18:02:29

标签: java testng

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

 @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();
}

0 个答案:

没有答案