@DataProvider
public Iterator<String> getTestData() throws IOException
{
ReadTestData readtestData=new ReadTestData();
ArrayList<String> testData=readtestData.readExcel();
return testData.iterator();
}
@Test(dataProvider="getTestData")
public void addEmployeeExcel(String empRef,String foreName,String surName,String jobTitle,String location)
{
System.out.println("empref"+empRef);
}
为什么我得到以下错误?我在excel表中有5列
数据提供程序不匹配方法:addEmployeeExcel([Parameter {index = 0,type = java.lang.String,declaredAnnotations = []},Parameter {index = 1,type = java.lang.String,declaredAnnotations = []},Parameter { index = 2,type = java.lang.String,declaredAnnotations = []},Parameter {index = 3,type = java.lang.String,declaredAnnotations = []}])参数:[(java.lang.String)WTS1 ]
你的getTestData()
方法返回String
的集合,但你的addEmployeeExcel()
方法需要5个String
参数。您需要更改addEmployeeExcel()
的参数以获取集合,然后提取每个变量,empRef
等。
您必须检查testData的参数并相应地传递addEmployeeExcel方法,
如果你不知道,testData有什么,你可以在控制台中打印它。
示例代码:
@DataProvider
public Iterator<Object[]> getTestData()
{
ArrayList<Object[]> testdata = new ArrayList<Object[]>();
try {
reader = new excelUtility(excelTestDataFile);
} catch (Exception e) {
e.printStackTrace();
}
sheetName = "namingTest";
for (int rowNumber = 2; rowNumber <= reader.getRowCount(sheetName); rowNumber++)
{
String caseNo = reader.getCellData(sheetName, "Case", rowNumber);
String groupName = reader.getCellData(sheetName, "Name", rowNumber);
String message = reader.getCellData(sheetName, "Expected Result", rowNumber);
Object ob[] =
{ caseNo, groupName, message };
testdata.add(ob);
}
return testdata.iterator();
}
这是测试方法,
@Test(dataProvider = "getTestData")
public void addGroup(String caseNo, String targetGroupName, String expectedResult) throws Exception {
}