使用 DataProvider 和 TestNG 显示错误 [Utils] [ERROR] [Error] java.lang.NullPointerException

问题描述

来自 Logintest()代码

@DataProvider(name = "BookingData")
Object[][] getData() throws IOException {

    File src = new File("F:\\selenium\\bha\\MyFleet\\src\\test\\java\\co\\qa\\testData\\DailyTestData.xls");
    System.out.println("Excel is able to read");
    int rowCaught = ExcelUtils.getRow(src,"Sheet");
    int cellCaught = ExcelUtils.getCol(src,"Sheet",1);

    Object[][] bookingdata = new Object[rowCaught][cellCaught];

    for (int i = 1; i <= rowCaught; i++) {
        for (int j = 0; j < cellCaught; j++) {
            bookingdata[i][j] = ExcelUtils.getCellData(src,i,j);
        }
    }
    return bookingdata;

使用 DataProvider 和 TestNG 显示错误 [Utils] [ERROR] [Error] java.lang.NullPointerException

解决方法

您需要将参数(等于 xls 文件中的列数)与数据提供者名称一起传递给 @Test 方法。

例如:

如果你的 xls 数据是这样的

data1 | data2 | data3 | data4 |

那么你的@Test 方法必须如下所示:

@Test(dataprovider="BookingData")
void testMethod(String dt1,String dt2,String dt3,String dt4) // data type from xls should match with parameters,here 'String' is used just for demo )
{

}