同时使用@DataProvider和@参数

2022-06-27 00:00:00 selenium selenium-webdriver java testng

我想知道是否有办法同时使用@DataProviderParamaters传递参数。

我尝试了两个选项,但都失败了:

@Parameters("Brand")
@Test(dataProvider="dpCGA", groups={"CGA"})
public void createAccount(String brand) {
    setBrand(brand);
}

上例中的数据提供程序正在覆盖品牌变量。

@Parameters("Brand")
@Test(dataProvider="dpCGA", groups={"CGA"})
public void createAccount(String brand, String email) {
    setBrand(brand);
    createAccount(email);
}

测试用例甚至没有运行。

我正在使用TestNG来运行我的测试用例,并希望从XML文件中获取品牌参数。

此外,我还有一个用来保存电子邮件的Excel文件,并希望使用@DataProvider获取这些值。

是否可以同时使用这两个标记?如果没有,是否有其他方法可以从XML文件中获取品牌参数?

提前谢谢


解决方案

@DataProvider是将参数传递给方法的方法之一。不能对同一方法同时和使用。

查看您的问题,您可以简单地将品牌添加到DataProvider方法中,如下所示

  @DataProvider(name="dpCGA")
  public Object[][] data() {

    return new Object[][] { 
        {"brand", "email1"}, 
        {"brand", "email2"}
     };
  }

并将其传递给方法

@Test(dataProvider="dpCGA", groups={"CGA"})
public void createAccount(String brand, String email) {
    setBrand(brand);
    createAccount(email);
}

相关文章