我有一个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
钩子做了什么,不幸的是
答案 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