我使用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/

10-11 23:22
查看更多