在testng中使用不同的dataprovider运行相同的测试

时间:2015-06-11 22:42:51

标签: java testing automation testng testng-dataprovider

例如:

  • 数据提供者1:dataA
  • 数据提供者2:dataB,dataC
  • 数据提供者3:dataD,dataE,dataG

所以我的测试需要一个数据提供者。但我希望它根据测试组为不同的测试类型选择不同的数据提供者。例如,如果我正在运行组“冒烟”,那么我想使用数据提供者1,如果我正在运行组“健全”,那么我想运行数据提供者1和数据提供者2,如果我正在运行组“回归”那么我希望它能够运行数据提供者1,2和3。

这可能吗?如果是这样,请您提供信息或指出我可以提供帮助的文件或其他内容。

目前我的工作是为每个组进行3次不同的测试,然后我可以选择使用哪个数据提供者。我也可以组合数据提供者。

我的工作问题是所有3个测试完全相同,不同的是组和数据提供者。

谢谢!

1 个答案:

答案 0 :(得分:6)

如何使用一个返回不同数据的数据提供程序 - 基于当前测试组:

@DataProvider(name = "myDataProvider")
public Object[][] testDataProvider(ITestContext context) {
    List<String> includedGroups = Arrays.asList(context.getIncludedGroups());

    if(includedGroups.contains("myGroup")) {
        return dataA;
    }
    else if (includedGroups.contains("myOtherGroup")) {
        return dataBC;
    }

    //...
}