2015-12-02 75 views
1

这里是我的dataProviderTestNG的不计数据提供程序测试单独

@DataProvider(name = "arrayBuilder") 
public Object[][] parameterTestProvider() { 
    //Code to obtain retailerIDList 
    String[] retailerIDArray = retailerIDList.toArray(new String[retailerIDList.size()]); 
assertEquals(1295, retailerIDList.size(), "Expected 1295, found " + retailerIDList.size() + " docs"); 
    return new Object[][] {{retailerIDArray}}; 
} 

,这是我的测试

@Test(dataProvider = "arrayBuilder", invocationCount = 1, threadPoolSize = 1) 
public void getRetailer(String[] retailerIDList) { 

    for (String retailer_ID : retailerIDList) { 
     //Code that uses the retailerID 
} 

当我执行这个测试,TestNG的输出列表“getRetailer”作为唯一的测试。我有1295记录由dataprovider返回,我想要1295测试报告。我错过了什么?

+0

它是否运行的方法1295次,每行数据?如果不是那么你的数据提供者实现是不正确的如果它已经运行了很多次,那么它会为每个使用的测试数据集提供结果。请仔细阅读报告。 – Shamik

+0

我在测试中加入了调试信息,我可以看到每个1295值都打印正确。除了TestNG将其报告为单个测试外,DataProvider运行良好。 – Jai

+0

你在看哪个报告。在测试结果文件夹中的两个报告emailable-report.html和index.html中,我可以看到每行数据提供者的单独行,而没有做任何额外的事情。你能告诉我你在看哪个报告吗? – Shamik

回答

1

请使用,它应该工作。您需要返回对象数组,其中每行都是您想要用于测试的一行数据。那么只有它会出现在报告中。你在做的是给它发送一个数组,以便将它当作一个单独的测试。

@DataProvider(name="provideData") 
    public Iterator<Object[]> provideData() throws Exception 
    { 
     List<Object[]> data = new ArrayList<Object[]>(); 
     String[] retailerIDArray = retailerIDList.toArray(new String[retailerIDList.size()]); 
     assertEquals(1295, retailerIDList.size(), "Expected 1295, found " + retailerIDList.size() + " docs"); 
     for(String retailerID : retailerIDArray){ 

      data.add(new Object[]{retailerID}); 

     } 

     return data.iterator(); 

    } 

@Test(dataProvider = "provideData") 
public void getRetailer(String retailerIDList) { 

    for (String retailer_ID : retailerIDList) { 
     //Code that uses the retailerID 
    } 
} 

欲了解更多信息,请访问通过文档here

+0

的示例实现@Test(dataProvider =“provideData”) public void getRetailer(String retailerID){ // Code to直接在迭代的每个元素上工作,即零售商ID }谢谢,双数组是不必要的,有点令人困惑的恕我直言。 – Jai

+0

欢迎。是的,在你的情况下它不是必需的。我从我的实现中复制它,因为它有多个参数。如果它适合你,你能否接受它作为答案? – Shamik

相关问题