首页 > 解决方案 > 如何在黄瓜红宝石中暂停执行错误

问题描述

我希望测试套件在抛出错误时暂停,以便我可以在浏览器中进行调试,例如 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

如何停止执行?

标签: rubycucumber

解决方案


使用 byebug。

当您收到错误时,请使用错误消息

  1. 获取导致问题的场景(因此您可以自行运行它)
  2. 获取开始调试的起点,该起点将在发生错误的位置上方。

在错误点进行调试没有多大意义,因为大多数错误发生在断言失败时,您将只是在一堆与您的应用程序无关的复杂测试框架代码中,并且已经过了点失败的


推荐阅读