Dataprovider in Testng using ITestContext -
i trying use data provider using itestcontext , groups using xml getting error , not sure how resolve it. can please check , let me know.
actual class run below consumes data provider class in 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 2 numbers " + 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 2 numbers " + 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 2 numbers " + sum); } }
data provider class 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; } }
you need initialize grouparray
valid array.
so please add :
object[][] grouparray = new object[0][0];
as @niharika_neo pointed out, data provider returning null
value.
the error message in testng improvised , available in next testng version: https://github.com/cbeust/testng/issues/1509
Comments
Post a Comment