0

Capybara 屏幕截图在步骤失败时不拍摄快照。我正在使用以下代码:

Capybara.save_and_open_page_path = "/file/path"
Capybara::Screenshot.register_filename_prefix_formatter(:rspec) do |example|
 "screenshot_#{example.description.gsub(' ', '-').gsub(/^.*\/spec\//,'')}"
end

我看到它在整个场景结束后截屏,但没有在步骤失败时截屏。我想要步骤失败时的屏幕截图...请帮助

4

2 回答 2

0

在您的 spec_helper 中,您可以设置您的后挂钩来执行以下操作:

RSpec.configure do |config|
  config.after(:each) do |example|
    if example.exception
      file_name = 'failed_%s.png' % rand(1000).to_s # name your screenshot whatever you'd like
      page.save_screenshot(file_name)
    end
  end
end
于 2015-12-17T21:34:18.940 回答
0

你可以使用after钩子来做到这一点。https://www.relishapp.com/rspec/rspec-core/v/2-2/docs/hooks/before-and-after-hooks

如前所述,即使示例失败,也将执行钩子之后

于 2015-12-14T19:58:51.847 回答