Java和Cucumber如何重用场景多线程

时间:2016-08-03 14:50:24

标签: java multithreading cucumber

我使用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"是一个我不能并行运行测试的单身人士。

有更好的方法吗?我想念一下吗?

2 个答案:

答案 0 :(得分:1)

这是正确的,你将无法在同一个JVM上并行运行两个测试,因为访问User对象时会出现竞争条件。

阅读this tutorial on current cucumber tests and maven以获取有关如何并行运行黄瓜测试的信息。

答案 1 :(得分:0)

如果我理解你的问题,你想要的不是并行运行场景,而是在不同的步骤文件之间共享一些数据。是这样吗?

如果答案是肯定的,请查看使用Cucumber的依赖注入方法。这将允许您在不同的java文件之间共享类实例。