简体   繁体   English

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

[英]TestNg Printing the value of the parameters when the data input provider is a CSV file

I am using below code which reads a CSV file and passes the object to the method under test called as public void launchWCM1(IBLogonDataCSV data) .我正在使用以下代码读取 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;        


    } 

When the method public void launchWCM1(IBLogonDataCSV data) passes or fails the Testng Report displays the object name which is not helpful in knowing what is the String value or the name of the URL failed in order to further debug .当方法 public void launchWCM1(IBLogonDataCSV data) 通过或失败时,Testng Report 会显示对象名称,这对于了解什么是 String 值或 URL 的名称没有帮助,以便进一步调试。

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

What should be done to display the parameters in as a String Value ,something which will can be easily read like : launchWCM1 Test class: com.seleniumtests.test.IBLogonCSV Parameters: Name of the URL or something like that instead of the object name应该怎么做才能将参数显示为字符串值,这很容易读取,例如:launchWCM1 测试类:com.seleniumtests.test.IBLogonCSV 参数:URL 名称或类似名称而不是对象名称

You can override toString() and implement it to return readable meaningful vaule of your class.您可以覆盖toString()并实现它以返回您的类的可读有意义的值。

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

Other way is, there are few third party extensions to TestNG are available, You can utilize available data-provider-extension .另一种方式是,TestNG 的第三方扩展很少可用,您可以使用可用的data-provider-extension For example, QAF has in-built data providers for XML/CSV/Excel/Json/DB.例如,QAF 具有用于 XML/CSV/Excel/Json/DB 的内置数据提供程序

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM