在testng方法中传递dataProvider参数

时间:2015-04-29 11:30:01

标签: maven selenium jenkins testng pom.xml

我有两个@DataProviders:

@DataProvider(name = "smallNumbers")
@DataProvider(name = "bigNumbers")

pom.xml中的变量

<systemPropertyVariables>
<dataP>${dataProvider}</dataP>
</systemPropertyVariables>

访问参数:

String sizeNumbers = System.getProperty("dataP");

我的测试:

@Test(dataProvider=sizeNumbers) 

测试方法中的dataProvider必须是: 一个恒定的表达 知道如何在@Test中传递变量(dataProvider =?

1 个答案:

答案 0 :(得分:1)

你不能这样做。只能将dataprovider直接传递给方法。 为什么选择这种方式从dataprovider注入数据?展示更多关于代码架构的信息,因为它看起来很奇怪。

修改

你可以这样检查:

@DataProvider(name = "dp")
public static Object[][] dataInject(){
  return new Object[][]{
            {sizeNumbers}
  };
} 

内部&#34; dp&#34;你也可以为ex做一些验证。 &#34;的isNull&#34;等

然后在测试中

@Test(dataProvider = "dp", dataProviderClass = Xyz.class)
public void testFirst(String input){
//...
}