我希望在类中并行运行测试方法和数据提供程序。我需要一个数据提供程序,每次在新的测试方法开始为给定的测试运行生成部分动态数据之前,都会调用它。让我用伪代码来解释一下:
@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">我怎样才能做到这一点呢?
发布于 2019-10-14 14:27:07
好了,现在我意识到我真正想要的是什么了,我的问题看起来有点愚蠢。很抱歉。无论如何,这是我的解决方案:
@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()花费了很多时间,那么它将在任何测试方法开始之前立即获取它。
发布于 2019-10-14 08:23:08
https://stackoverflow.com/questions/58367601
复制相似问题