使用平行黄瓜测试保存状态

时间:2014-12-04 18:12:58

标签: java cucumber guice cucumber-jvm

我们正在使用Cucumber / Guice在Java中运行UI测试,并且几个步骤定义文件遍布整个地方。

我的问题是国家维持在哪里?如果我想用两个独立的跑步者进行两个单独的测试,那么步骤如何对待类别?是否为每个场景创建了一个?每个功能?或者它们是跨实例共享的吗?

例如,这会成为一个问题吗?下面的步骤def是不是线程安全的吗?

public class StepDef  {

  private Properties props;
  private int num;

  @Inject
  public StepDef(Properties props) {
     this.props = props;
  }


  @Given("^the digit (\d)$")
  public void the_digit(int num) {
    this.num = num;
  }


  @When("^it is multiplied by 5$")
  public void it_is_multiplied_by_5() {
    this.num *= 5;
  }

  @Then("^the result is (\d)$")
  public void the_result_is(int result) {
    assertEqual(result, this.num);
  }
}

1 个答案:

答案 0 :(得分:0)

我相信这是每个​​跑步者的一个班级实例。所以你在做什么我觉得没问题。为了它的价值,我们使用java中的多线程处理cucumber-jvm中的并行化问题(以及跨步骤/特征存储状态)(每个线程都有本地变量)。它可以在github上找到 - zucchini