2014-12-04 43 views
2

我们使用Cucumber/Guice以Java运行UI测试,并在该位置分布了多个步骤定义文件。使用并行黄瓜测试保存状态

我的问题是国家在哪里维护?如果我想用两个单独的跑步者跑两个单独的测试,那么这个步骤是如何处理的?是为每个场景创建的吗?每个功能?或者它们是跨实例共享的?

例如,这会是一个问题吗?下面的step-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

我相信这是每个​​跑步者类的一个例子。所以你在做什么,我认为会很好。对于它的价值,我们使用java中的多线程(每个线程都有本地变量)处理cucumber-jvm(以及跨越步骤/特征的状态存储)中的并行化问题。它在github上可用 - zucchini