[英]Take a scenario failure screenshot
在我使用 Ruby / Capybara / Cucumber / Selenium 的自动化测试中,当我的测试的某些步骤失败时,有必要执行以下步骤:
知道如何帮助我解决这个问题吗?
今天系统截屏作为场景成功的证据,但现在我想在不干扰我所有测试的执行的情况下截取失败的截图,跟随下一步或场景的执行。
当前用作截屏钩子的示例代码:
After do | scenario |
screenshot = "log / screenshots / # {scenario.name} .png"
page.save_screenshot (screenshot)
embed (screenshot, 'image / png', 'Screen_Evidence')
end
这应该为您在故障点创建一个屏幕截图。
config.after(:each) do |example|
if example.exception
screenshot = "log / screenshots / # {scenario.name} .png"
page.save_screenshot(screenshot) embed(screenshot, 'image/png', 'Screen_Evidence') end end
您可能希望将其限制为功能测试,并且您可以选择尝试将现有屏幕截图代码重构为相同的功能。
试试这个方法。
After do |scenario|
if scenario.failed?
timestamp = "#{Time.zone.now.strftime('%Y-%m-%d-%H:%M:%S')}"
screenshot_name = "screenshot-#{scenario.name}-#{timestamp}.png"
screenshot_path = "#{Rails.root.join(provide path to save screenshots)}/#{screenshot_name}"
Capybara.page.save_screenshot(screenshot_path, full: true)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.