DataProvider не позволяет возвращать 2D-массив String - PullRequest
0 голосов
/ 20 июня 2020

Я создал структуру Selenium с помощью TestNG. В этой структуре @Dataprovider содержит набор кода, который считывает данные из Excel и возвращает это значение как 2D-массив в @ Test.

@DataProvider(name="excelParam")
    public static String[][] loginData()
    {
        return Util.Excel.get("/LearningSelenium/creds.xls");
    }

    @Test(dataProvider = "excelParam")
    public void loginTest(String username, String password) {
        driver.findElement(By.name("uid")).sendKeys(username);
        driver.findElement(By.name("password")).sendKeys(password);
        driver.findElement(By.name("btnLogin")).click();
}

Метод get возвращает String [] []. Но я получаю сообщение об ошибке, поскольку «DataProvider должен возвращать Object [] []». Если я изменю его на Object [] [], тогда мой тестовый пример завершится с ошибкой ниже:

org.testng.internal.reflect.MethodMatcherException: 
[public void ParameterTestExcel.loginTest(java.lang.String,java.lang.String)] has no parameters defined but was found to be using a data provider (either explicitly specified or inherited from class level annotation).
Data provider mismatch

Test ignored.

===============================================
Default Suite
Total tests run: 1, Passes: 0, Failures: 1, Skips: 0
===============================================

1 Ответ

0 голосов
/ 21 июня 2020
 **

    @DataProvider(name ="Testlogin")
        public Object[][]  getData()
        {
            // here you can give data
            return data;
        }

**

your code like " public static String[][] loginData()
    {
        return Util.Excel.get("/LearningSelenium/creds.xls");
    }

your return type is string but that should be Object[][]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...