0

我正在使用下面的代码读取 CSV 文件并将对象传递给被测方法,称为 public void launchWCM1(IBLogonDataCSV data) 。

@DataProvider(name = "regCSVData")
    public static Object[][] getCSVData() throws IOException {
        CSVReader csvReader = new CSVReader(new FileReader(
                "C:\\Projects\\Project\\regdata.csv"));
        List<String[]> dataList = csvReader.readAll();
        String s = "";

        Object[][] data = new Object[dataList.size()][1];
        List<IBLogonDataCSV> regList = new ArrayList<IBLogonDataCSV>();

        for (String[] strArray : dataList) {
            IBLogonDataCSV ibLogonData = new IBLogonDataCSV();
            ibLogonData.setURL((strArray[0].trim()));
            ibLogonData.setApplicationName((strArray[1].trim()));
            ibLogonData.setIBLogonURL(strArray[2].trim());
            ibLogonData.setWindowName(strArray[3].trim());
            ibLogonData.setSnapshotName(strArray[4].trim());
            ibLogonData.setRegister(strArray[5].trim());
            ibLogonData.setRegisterURL(strArray[6].trim());
            ibLogonData.setDemo(strArray[7].trim());
            ibLogonData.setDemoURL(strArray[8].trim());
            ibLogonData.setSecurity(strArray[9].trim());
            ibLogonData.setSecurityURL(strArray[10].trim());
            regList.add(ibLogonData);

        }

        for (int i = 0; i < data.length; i++) {
            for (int j = 0; j < data[i].length; j++) {

                data[i][j] = regList.get(i);
                System.out.println("In Array" + regList.get(i).URL
                        + regList.get(i).ApplicationName);
                s = s + regList.get(i).URL;

            }

        }
        csvReader.close();
        return data;        


    } 

当方法 public void launchWCM1(IBLogonDataCSV data) 通过或失败时,Testng 报告会显示对象名称,这对于了解 String 值是什么或 URL 的名称没有帮助,以便进一步调试。

示例:launchWCM1 测试类:com.seleniumtests.test.IBLogonCSV 参数:com.seleniumtests.dataobject.IBLogonDataCSV@de1b8a

应该怎么做才能将参数显示为字符串值,这可以很容易地阅读,例如:launchWCM1 测试类:com.seleniumtests.test.IBLogonCSV 参数:URL 的名称或类似名称,而不是对象名称

4

1 回答 1

0

您可以覆盖toString()并实现它以返回您的类的可读有意义的值。

@Override
public String toString(){
 String valueToReturn = "calculate from the properties";
 return valueToReturn;
}

另一种方法是,TestNG 的第三方扩展很少,您可以利用可用的 data-provider-extension。例如,QAF 具有用于 XML/CSV/Excel/Json/DB的内置数据提供程序。

于 2019-12-22T04:50:53.213 回答