使用ITestContext的Testng中的数据提供程序
我试图使用ITestContext的数据提供程序和使用xml的组,但我遇到了错误,不知道如何解决它。请有人检查一下,让我知道 要运行的实际类低于使用另一个类中的数据提供程序类的类使用ITestContext的Testng中的数据提供程序,testng,dataprovider,testng-dataprovider,Testng,Dataprovider,Testng Dataprovider,我试图使用ITestContext的数据提供程序和使用xml的组,但我遇到了错误,不知道如何解决它。请有人检查一下,让我知道 要运行的实际类低于使用另一个类中的数据提供程序类的类 package dataProvider; import org.testng.annotations.Test; public class DataProviderClassWithITestContextExample { @Test(dataProvider = "NumberInputs", group
package dataProvider;
import org.testng.annotations.Test;
public class DataProviderClassWithITestContextExample {
@Test(dataProvider = "NumberInputs", groups = "Group20", dataProviderClass= myDataProviderWithITestContextClass.class)
public void sumOfTwoNumbersMethodOne(int num1, int num2 ) {
int sum = num1 + num2;
System.out.println(" Sum of two numbers is " + sum);
}
@Test(dataProvider = "NumberInputs", groups = "Group20", dataProviderClass= myDataProviderWithITestContextClass.class)
public void sumOfTwoNumbersMethodThree(int num1, int num2 ) {
int sum = num1 + num2;
System.out.println(" Sum of two numbers is " + sum);
}
@Test(dataProvider = "NumberInputs", groups = "Group21", dataProviderClass= myDataProviderWithITestContextClass.class)
public void sumOfTwoNumbersMethodTwo(int num1, int num2 ) {
int sum = num1 + num2;
System.out.println(" Sum of two numbers is " + sum);
}
}
数据提供程序类如下所示:
package dataProvider;
import org.testng.ITestContext;
import org.testng.annotations.DataProvider;
public class myDataProviderWithITestContextClass {
@DataProvider(name = "NumberInputs")
public Object[][] getDataFromDataprovider(ITestContext c) {
Object[][] groupArray=null;
for(String group : c.getIncludedGroups()) {
if(group.equalsIgnoreCase("Group20")) {
groupArray = new Object[][] {
{ 22, 33 },
{ 12, 13 }
};
break;
}
else if(group.equalsIgnoreCase("Group21")) {
groupArray = new Object [][] {
{ 10, 20 },
{ 40, 20 }
};
// break;
}
break;
}
return groupArray;
}
}
您需要在类上面使用@Guice
@Guice
public class DataProviderClassWithITestContextExample {
...
为此,如果没有,则需要jars javax.inject-1.jar和guice-3.0.jar您需要将
组数组
初始化为有效数组
因此,请添加以下内容:
Object[][]groupArray=新对象[0][0]代码>
正如@niharika_neo所指出的,您的数据提供者正在返回一个null
值
TestNG中的错误消息完全可以临时生成,并将在下一个TestNG版本中提供:错误是什么?这是错误消息[Utils][error][error]org.TestNG.TestNGException:Data Provider public java.lang.Object[]dataProvider.myDataProviderWithITestContextClass.getDataFromDataprovider(org.testng.ITestContext)必须返回Object[]或IteratorObject[],而不是class[[Ljava.lang.Object;@niharika_]您是如何调用测试的?您是通过组调用的,因为您的数据提供程序似乎返回null