2014-12-04 33 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