2015-04-26 53 views
0

中的所有示例之後僅運行After鉤子我有一個scenario_outline,用於測試網站的登錄屏幕。黃瓜:如何在scenarion_outline

Scenario_outline: 
    Try to login 
    Verify login 

    Examples: 
    | User | Pass | 
    | user1 | pass1 | 
    | user2 | pass2 | 

我希望能夠在開始時啓動網頁並關閉所有例子。

運行前鉤容易

Before do 
    $start ||= false 
    if ! start 
     #start web page 
     $start = true 
    end 
end 

但我怎麼跑我機後只有一次後,所有場景都做了什麼?

After do 
    #close web page 
end 

上面的例子簡單地關閉了第一個例子後面的網頁,並導致其餘的失敗。我不能在這裏申請我的所作所爲與Before鉤不幸

回答

2

測試的其餘部分是失敗的原因是因爲你的方法後,沒有設置全局回false:

After do 
    #close web page 
    $start = false 
end 

我不相信有一個AfterScenario掛鉤。但在你的情況下,如果你希望瀏覽器在整個場景大綱中打開,我會考慮使用常規場景和黃瓜表。該會在每個測試用例中共享瀏覽器會話。

僅供參考:還有一個at_exit鉤子。它的目的是在所有測試之後運行一些代碼。

at_exit做 #關閉網頁 結束

https://github.com/cucumber/cucumber/wiki/Hooks#global-hooks

+0

如果'after'鉤將設置'$ start'爲'FALSE'再次,它會打開一個瀏覽器實例的每一個例子,其正是我想要避免的。但'at_exit'鉤子正是我所需要的。謝謝。 – MichaelR