ruby-on-rails - 拍摄场景失败截图
问题描述
在我使用 Ruby / Capybara / Cucumber / Selenium 的自动化测试中,当我的测试的某个步骤失败时,必须执行以下步骤:
- 截取浏览器截图
- Stacktrace 取出的图像
- 执行下一个场景。
知道如何帮助我解决这个问题吗?
今天系统截图作为场景成功的证据,但现在我想在不影响我所有测试的执行的情况下截图失败,跟随下一步或场景的执行。
当前用作截屏挂钩的示例代码:
After do | scenario |
screenshot = "log / screenshots / # {scenario.name} .png"
page.save_screenshot (screenshot)
embed (screenshot, 'image / png', 'Screen_Evidence')
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)
推荐阅读
- eclipse - 作为 Eclipse 应用程序运行时服务器暂时不可用
- mysql - 如何使 between 子句的上限和下限依赖于 group by 子句定义的组
- android - 更改使用数据绑定的 Android Activity 的布局
- python - 在 python 2.7 上安装 PySide2
- plugins - Hive/hdfs 插件身份验证,用于与游侠管理员同步策略 (viarestapi)
- c++ - 如何在 Centos 7 上构建 Sorbet(缺少 llvm_toolchain)
- javascript - 添加2个元素highcharts
- go - 如何读取 ORC 文件元数据?
- php - Laravel API:RegisterController 在创建用户时设置默认值不起作用
- python - 当我尝试使用 auto-py-to-exe 将其转换为独立应用程序时,我的代码(python)出了什么问题