我有一个使用数据提供程序运行多个参数的TestNG测试方法:
@DataProvider()
public Object[][] scenarios() {...}
@Test(dataProvider = "scenarios")
public void check(...) {...}
有时候我想并行运行check
测试,有时候不是。我可以通过将代码注释设置为@DataProvider(parallel = true)
或@DataProvider(parallel = false)
来控制,但我想将其作为运行时参数,而不是代码中的设置。
如何设置数据提供程序是作为命令行参数还是TestNG套件XML文件中的属性生成多个线程?
答案 0 :(得分:2)
Annotation Transformers就是你要找的。
使用它们,您将能够根据您自己的业务规则修改parallel
的值(例如:env var)。
答案 1 :(得分:0)
您可以尝试将ITestContext传递给数据提供者,例如来自测试的小组(' singleTest'或' parallelTest')。在数据提供者中,只返回singleTest组的一个对象,它就足够了。