TestNG 并行数据提供程序



我想在与数据提供程序并行的类中运行测试方法。 我需要一个新的数据提供程序,每次在新测试方法开始为给定测试运行生成部分动态数据之前调用该提供程序。让我用伪代码解释一下:

@DataProvider(parallel=true)
public Object[][] dp(){
User user = createNewUser();
return new Object[][]{
{"s1", new AExtendsOtherObject(user), user},
{"s2", new BExtendsOtherObject("any"), user},
}
@Test(dataProvider = "dp")
void test(String s, OtherObject o, User user){
}
<suite name="all" verbose="1" parallel="methods" data-provider-thread-count="5">

我怎样才能做到这一点?

好的,所以现在我意识到我真正想要的是什么,我的问题看起来有点愚蠢。对不起。无论如何,这是我的解决方案:

@DataProvider(parallel=true)
public Iterator<Object[]> dp(){
List<Object[]> list = new ArrayList<>();
User user = createNewUser();
list.add(new Object[]{"s1", new AExtendsOtherObject(user), user});
user = createNewUser();
list.add(new Object[] {"s2", new BExtendsOtherObject("any"), user});        
return list.iterator();
}

此解决方案的唯一问题是,如果 createNewUser(( 需要大量时间,那么在任何测试方法开始之前,它将立即提前进行。

你试过这个吗?来自公共文档:

https://howtodoinjava.com/testng/testng-executing-parallel-tests/#test_in_multiple_threads

最新更新