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) .
@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 .
Example:launchWCM1 Test class: com.seleniumtests.test.IBLogonCSV Parameters: 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