TestNg当数据输入提供程序是CSV文件时打印参数的值

问题描述 投票:0回答:1

[我正在使用下面的代码,该代码读取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名称失败以进行进一步调试没有帮助。

示例:启动WCM1测试类别:com.seleniumtests.test.IBLogonCSV参数:com.seleniumtests.dataobject.IBLogonDataCSV@de1b8a

将参数显示为字符串值时应该做的事情,这很容易理解,例如:启动WCM1测试类别:com.seleniumtests.test.IBLogonCSV参数:URL名称或类似的名称,而不是对象名称

java csv selenium selenium-webdriver testng
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具有in-built data providers

© www.soinside.com 2019 - 2024. All rights reserved.