如何在选定的Cucumber场景后运行钩子?

时间:2014-09-05 13:39:07

标签: ruby selenium cucumber

我写了一个钩子来捕捉成功测试的截图:

After do |scenario|
  if scenario.passed?
    screenshot_pass = "/VVR_Browser_BDD/Test Pass/#{scenario.name}.jpeg"
    page.save_screenshot screenshot_pass
  end
end

此元素目前运作良好,但随着我的测试套件的增长,我将被屏幕截图所覆盖。我想选择何时使用这个钩子。

我知道有一个功能文件,您可以将其标记为:

@happypath
When /^I log into a page$/ do

等等。

可以使用相同的标记机制来调用钩子吗?

我只想为我已经编写过的新测试运行屏幕截图,以确保他们在将它们集成到我的完整测试套件之前正常工作。

1 个答案:

答案 0 :(得分:2)

如果您将代码作为钩子的一部分进行调用,则应该能够为标记方案执行操作

@take_screenshot
When /^I log into a page$/ do

然后可以调用你的钩子

After('@take_screenshot') do |scenario|
   if scenario.passed?
     screenshot_pass = "/VVR_Browser_BDD/Test Pass/#{scenario.name}.jpeg"
      page.save_screenshot screenshot_pass
  end
end