小编典典

Java TestNG具有跨多个测试的数据驱动测试

java

我有一系列要在电子商务平台上测试的商店,并且每个商店都具有要针对其自动化测试的一系列属性。是否可以有一个数据提供程序在整个测试套件中提供数据,而不仅仅是在TestNG中提供测试?我试图不使用testNG.xml文件作为机制,因为这些属性直接来自数据库调用。

["StoreName", "username", "password", "credit-enabled", "items-store", "shipping-location", ]

我需要自动执行以下操作:

  1. @Test在当前数据集行中使用用户名和密码登录。
  2. @Test验证StoreName和items-store
  3. @Test导航到管理,并在给定item-store值的情况下,验证商店的信用启用设置以及商店的运输位置是否正确。

但是这里的每个步骤都必须进行单独的测试。


阅读 243

收藏
2020-11-30

共1个答案

小编典典

您可以将dataprovider放在单独的类中,然后使用dataprovider注释测试。您可以使用 dataProviderClass 指定它


在这里从testng doc引用:

默认情况下,将在当前测试类或其基类之一中查找数据提供者。如果要将数据提供程序放在其他类中,则它必须是静态方法,并在dataProviderClass属性中指定可以在其中找到它的类:

public class StaticProvider {
  @DataProvider(name = "create")
  public static Object[][] createData() {
    return new Object[][] {
      new Object[] { new Integer(42) }
    }
  }
}

public class MyTest {
  @Test(dataProvider = "create", dataProviderClass = StaticProvider.class)
  public void test(Integer n) {
    // ...
  }
}
2020-11-30