我使用Java和Cucumber,并且在我的所有场景中都有反复使用的步骤。
我知道我可以重用场景,但是如果这样做,我仍然会遇到问题。
假设我要重用的场景是:
给定一个用户存在
步骤def是
@ContextConfiguration(classes = AppConfiguration.class)
public class UserStepDef {
User user;
@ Given("^A user exists$")
public void a_user_exists() {
user = createUser();
}
}
步骤定义将创建用户对象的实例,并将其分配给“用户”字段,该字段将在后续步骤中稍后使用。
我可以访问该字段的唯一方法是拥有运行该步骤的类的实例-> userStepDef.user。
我想在不同的Feature文件中重用该步骤定义,但是因为包含“ user”的类是单例,所以我无法并行运行测试。
有没有更好的办法?我想念什么吗?
最佳答案
没错,您将无法在同一JVM上并行运行两个测试,因为在访问User对象时会出现竞争条件。
阅读this tutorial on current cucumber tests and maven以获取有关如何并行运行黄瓜测试的信息。
关于java - Java和Cucumber如何重用场景多线程,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38746977/