ruby - 如何在黄瓜红宝石中暂停执行错误
问题描述
我希望测试套件在抛出错误时暂停,以便我可以在浏览器中进行调试,例如 chrome devtools 如何允许您在错误时暂停。我尝试使用 Around 块来捕获错误并启动调试会话,但错误必须在它冒泡到这个级别之前被捕获,因为救援永远不会被触发。
require 'pry-nav'
Around do |_scenario, block|
begin
block.call
rescue Exception, StandardError, Selenium::WebDriver::Error::UnknownError, RSpec::Expectations::ExpectationNotMetError, Capybara::ElementNotFound => e
puts e
binding.pry
end
end
如何停止执行?
解决方案
使用 byebug。
当您收到错误时,请使用错误消息
- 获取导致问题的场景(因此您可以自行运行它)
- 获取开始调试的起点,该起点将在发生错误的位置上方。
在错误点进行调试没有多大意义,因为大多数错误发生在断言失败时,您将只是在一堆与您的应用程序无关的复杂测试框架代码中,并且已经过了点失败的
推荐阅读
- npm - 学习webpack配置webpack-dev-server时报如下错误。我遵循了官方的 webpack 文档
- javascript - 如何正确创建登录用户的 json 响应以进行反应
- javascript - 我对 Cloud Firestore V9 和使用 React Js 有疑问。在我的一个文档中,有一张地图。如何访问此地图?
- performance - 核心网络生命体征 - 移动 - CLS 问题:超过 0.25(移动)
- td-engine - 如何将TDengine数据库中2020-06-02 10:40:28.001的时间类型转换为1591065628?
- flutter - 流生成器 ConnectionState.active 多次调用并在颤动中一次又一次地返回小部件
- javascript - 如何为暗/亮模式切换保存 cookie?W3 学校代码
- python - 将多个重复的模式名称分配给列表值
- python - 如何将导出的文件保存到与py文件相同的路径并将我的csv文件重命名为文件夹名称
- javascript - 在将浏览器窗口大小调整为全屏时,将网格项目调整为之前的状态