java - 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() 需要很长时间,那么它会在任何测试方法开始之前立即将其提前。
推荐阅读
- angular6 - Angular 6 - 如何提交表单的一个区域(但不是整个表单)
- ios - 无论纵横比如何,Endless Runner 都会重新定位播放器以获得相同的难度
- java - JPA创建Schema后如何让组件初始化?
- php - 使用 PHP 从 HEIC 照片中读取 EXIF 数据
- javascript - 为什么这个 forEach 循环嵌套?
- javascript - 在 HTML 网页上滚动播放 Lottie / Bodymovin 动画
- java - 如何使用动作监听器从按钮获取背景颜色
- gremlin - Gremlin:如何在同一条边上向后遍历
- python - 如何解决“ValueError:无法转换为 Excel”?(使用 Python 和 openpyxl)?
- reactjs - React nativ,aws-amplify 存储,获取 aws.cognito.identity-id