java - TestNG: Pass parameter to DataProvider from Maven -


it seems tried possible ways achieve this, no luck. have complex code in dataprovider (it collects data in complex way), want parametrized ci.

the first question here how read parameters inside dataprovider.

1 1 way parameters testng.xml way:

    string lolo = context.getcurrentxmltest().getparameter("testcases"); 

but doesn't solve problem, because .xml file must static then, , want pass parameters maven.

2 other way read parameters @factory in case:

    string testcasedatafilename = (method.getannotation(factory.class)).parameters()[0]; 

where @factory is:

    @factory(dataprovider="dataprovidermethod", parameters = {"authentication-testcases.json"}) 

it works too, again, doesn't solve problem, because parameters must harcoded in java test files, , @factory uses @dataprovider itself, , can't receive parameters maven implicitly.

additionally, have other test parameters, passed maven, used in @test tests, not dataprovider, , @beforesuite receives them.

i'll try simplify:

i calling maven

-dtestname=signup -dmyparam=1 test 

and want dataprovider receive value of dmyparam , use gather data. achieved receiving data @beforesuite , setting globally, problem dataprovider called before data set.

-d setting system property.

you'll able in code system.getproperty("myparam").


Comments