I am trying to use data provider using ITestContext and Groups using xml but i am getting error and not sure how to resolve it. Can someone please check and let me know.
Actual class to run is below which consumes data provider class in another class
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);
}
}
Data provider class is shown below :
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;
}
}