使用selenium webdriver和java在testng中的数据提供者

问题描述 投票:0回答:2
    @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 ]

java selenium-webdriver testng-dataprovider
2个回答
0
投票

你的getTestData()方法返回String的集合,但你的addEmployeeExcel()方法需要5个String参数。您需要更改addEmployeeExcel()的参数以获取集合,然后提取每个变量,empRef等。


0
投票

您必须检查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 {
    }
© www.soinside.com 2019 - 2024. All rights reserved.