当前位置: 首页 > 知识库问答 >
问题:

使用testNG框架在数据提供者中获取异常

蒋烨然
2023-03-14

在使用Apache POI框架读取excel时,我试图从testng中的dataprovider方法返回一个地图。

我写的代码是这样的

@DataProvider(name="dp")
    public Object[][] getExcelData(String testcaseID)throws IOException {
        loadExcelDataFile();
        Row row=sheet.getRow(returnMatchingRowData(testcaseID));
        Row headerRow=sheet.getRow(0);
        Map<String, String> map=new HashMap<String, String>();
        for (int x=0; x<row.getLastCellNum(); x++) {
            String key=headerRow.getCell(x).getStringCellValue();
            String value=row.getCell(x).getStringCellValue();
            map.put(key, value);
        }
        return new Object[][]{{map}};
    }

    @Test(dataProvider="dp")
    public void test1(HashMap<String, String> map) throws IOException {
        Object[][] ob=getExcelData("TC_001");
        System.out.println(map.get("EmpName"));
        System.out.println(ob.length);
    }

我收到以下错误

org.testng.TestNGException: 
Some DataProvider public java.lang.Object[][] com.orangehrm.meta.utils.ExcelUtils.getExcelData(java.lang.String) throws java.io.IOException parameters unresolved:  at 0 type class java.lang.String

共有1个答案

宇文梓
2023-03-14

只需尝试返回映射,而不使用对象声明,例如:

return map;
 类似资料:
  • 问题内容: 我正在用硒编写以下代码,并且显示以下错误,请让我知道问题出在哪里。 导入org.testng.annotations.DataProvider; 导入org.testng.annotations.Test; 错误: 失败:testData org.testng.internal.reflect.MethodMatcherException:数据提供者不匹配方法:testData([Pa

  • 在 Pagination 和 Sorting 部分, 我们已经介绍了如何允许终端用户选择一个特定的数据页面,根据一些字段对它们进行展现与排序。 因为分页和排序数据的任务是很常见的,所以Yii提供了一组封装好的data provider类。 数据提供者是一个实现了 yii\data\DataProviderInterface 接口的类。 它主要用于获取分页和数据排序。它经常用在 data widge

  • 有人知道TestNG如何根据为测试方法指定的数据提供者名称计算出数据提供者方法是什么吗? 我找到了这个解决方案:https://gist.github.com/ae6rt/3805639 但是,它没有考虑到数据提供者可能是: 在完全不同的类别中定义,或 在父类中定义,并且 该方法可以是静态的,也可以是非静态的 我试图自己破解一些东西,但后来我想我不可能是第一个试图解决这个问题的人,特别是因为显然T

  • 我的Java类没有运行。我有一个带有Apache POI的@DataProvider来从Excel文件中读取数据并在网页中设置该值。但是脚本以没有测试发现错误结束。这是我的代码: 这是我在eclipse控制台中的输出。 [TestNG]未找到测试。未运行任何内容用法:[选项]要运行的XML套件文件选项:-alwaysrunlisteners即使跳过的方法也应该运行方法调用监听器默认值:true-c

  • 我已使用以下方法在应用程序中输入凭据。 其中EnterText定义如下: 在测试类中,我写了下面的代码 我得到以下错误: 失败:loginProxy(“11”,“Priya”)java.lang.NumberFormatException:java.lang.Integer处为空。parseInt(未知源)位于java.lang.Integer。parseInt(未知源) 请帮助解决同样的问题。据

  • 问题内容: 我指的是“ 有效Java ”的第2章中讨论的“服务提供者框架” ,这似乎是解决我遇到的问题的正确方法,其中我需要在运行时实例化几个类之一,并根据选择一个服务和一个对象(基本上是XML代码段): 但是,如何让各个服务提供者(例如,一堆默认提供者+一些自定义提供者)进行注册? 例如,如果我编写了自定义类MyFooAlgorithm和MyFooAlgorithmProvider来实现FooA