2016-09-20 99 views
0

我想使用dataProvider在testNg中运行参数化测试。但不知何故,它总是忽略那个测试用例。以下是参考代码:testNg使用dataProvider |忽略参数化测试Maven | IntelliJ

@DataProvider(name = "test") 
public Object[][] testDP() throws Exception { 
    Object[][] arrayObject = getExcelData("TestData.xlsx", "TestData", "testName"); 
    return arrayObject; 
} 


@Test(dataProvider = "test", groups = {"sanity"}) 
public void testMethod(String testName, String logisticsHandler) { 
    System.out.print(testName + "\n"); 
    setUpdateLogisticsHandler(logisticsHandler); 
    updateLogisticsHandler(context.getAuthToken(),context.getQuoteIdForRfq()); 

} 
+0

你能否提供一个arrayObject内容的样本? – juherr

+0

'测试名\t logisticsHandler logistics_OFB \t OFB logistics_供应商\t供应商 logistics_BUYER \t BUYER' – iamvroon

+0

如果你跳过'getExcelData'和暂时的静态数组代替它?你如何运行你的测试?什么是使用的命令和surefire配置? – juherr

回答

0

有两种方法将数据发送到测试。

  1. 静态数组的使用 - 由朱利安先生
  2. 建议如果您正在使用Excel来获取数据,然后在Excel中,您必须有完全一样的行数/字段作为@Test功能。

例如:字符串testName,字符串logisticsHandler是@test函数中的两个字段,那么excel必须只有两行具有必需字段testdata,以便ObjectArray具有这些字段。

您可以使用Apache POI并轻松处理。

+0

感谢西......会尝试。另外,我还阅读了一篇文章,其中提到了testNG和Maven的组合存在一些问题,同时使用了testNG的dataProvider。将试图弄清楚。不管怎么说,还是要谢谢你。 – iamvroon