我使用java和黄瓜,并且在我的所有场景中都有一个反复使用的步骤。 我知道我可以重复使用一个场景,但如果我这样做,我仍然会遇到问题。
假设我想重用的场景是:
鉴于用户存在
步骤def
@ContextConfiguration(classes = AppConfiguration.class)
public class UserStepDef {
User user;
@ Given("^A user exists$")
public void a_user_exists() {
user = createUser();
}
}
步骤定义创建用户对象的实例并将其分配给字段" user"稍后将在以下步骤中使用。 我可以访问该字段的唯一方法是拥有运行该步骤的类的实例 - > userStepDef.user。 我想在不同的Feature文件中重用该步骤定义,但因为包含" user"是一个我不能并行运行测试的单身人士。
有更好的方法吗?我想念一下吗?
答案 0 :(得分:1)
这是正确的,你将无法在同一个JVM上并行运行两个测试,因为访问User对象时会出现竞争条件。
阅读this tutorial on current cucumber tests and maven以获取有关如何并行运行黄瓜测试的信息。
答案 1 :(得分:0)
如果我理解你的问题,你想要的不是并行运行场景,而是在不同的步骤文件之间共享一些数据。是这样吗?
如果答案是肯定的,请查看使用Cucumber的依赖注入方法。这将允许您在不同的java文件之间共享类实例。