黄瓜:如何在scenarion_outline中的所有示例之后只运行一次After钩子

时间:2015-04-26 07:17:17

标签: ruby cucumber watir-webdriver

我有一个scenario_outline来测试网站的登录界面。

Scenario_outline:
    Try to login
    Verify login

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

我希望能够在开始时启动网页,并在完成所有示例后关闭。

运行Before钩子很容易

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

但是如何在完成所有方案后只运行一次After hook?

After do
    #close web page
end

以上示例仅在第一个示例后关闭网页,导致其余部分失败。我不能在这里申请我对Before钩子做了什么,不幸的是

1 个答案:

答案 0 :(得分:2)

其余测试失败的原因是因为After方法没有将全局设置为false:

After do
    #close web page
    $start = false
end

我不相信有一个AfterScenario钩子。但在您的情况下,如果您希望浏览器打开整个Scenario Outline,我会考虑使用常规的Scenario和cucumber表。将在每个测试用例中共享浏览器会话。

仅供参考:还有一个at_exit钩子。它的目的是在所有测试之后运行一些代码。

at_exit do   #close网页 端

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