是否可以使用TestNG数据提供程序和测试套件参数?

是否可以使用TestNG数据提供程序和测试套件参数?,testng,data-driven-tests,Testng,Data Driven Tests,有人知道是否有一种方法可以在使用参数注释的同时使用TestNG数据提供程序?我们的测试套件有一些恒定的配置信息,这些信息通过@Parameter注释传递给测试方法。我们现在希望使用数据提供程序对一组数据值运行这些测试 我理解确定结果参数的顺序的内部问题,但如果可能,我们需要使用此功能 有什么想法吗 在理想的世界里,我可以做这样的事情: @Test(dataprovider = "dataLoader") @Parameters("suiteParam") public void testMeth

有人知道是否有一种方法可以在使用参数注释的同时使用TestNG数据提供程序?我们的测试套件有一些恒定的配置信息,这些信息通过@Parameter注释传递给测试方法。我们现在希望使用数据提供程序对一组数据值运行这些测试

我理解确定结果参数的顺序的内部问题,但如果可能,我们需要使用此功能

有什么想法吗

在理想的世界里,我可以做这样的事情:

@Test(dataprovider = "dataLoader")
@Parameters("suiteParam")
public void testMethod(String suiteParam, String fromDataParam) {
...
}

嘿,这可能有点笨重,但是为什么不使用@BeforeClass方法将suiteParam本地存储在测试类的一个字段上呢

private String suiteParam;

@BeforeClass
@Parameter("suiteParam")
public void init(String suiteParam) {
  this.suiteParam = suiteParam;
}
通过这种方式,您可以以常规方式使用数据提供程序,并且仍然可以访问套件参数。

是,使用。您可以访问数据提供程序中定义的所有参数。这是一些需要test_param参数的示例数据提供程序:

@DataProvider(name = "usesParameter")
public Object[][] provideTestParam(ITestContext context) {
    String testParam = context.getCurrentXmlTest().getParameter("test_param");
    return new Object[][] {{ testParam }};
}
通过这种方式,您可以在DataProvider中收集配置和生成的参数,然后将其用于测试。有关ITestContext类的详细信息,请参阅