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