как приостановить выполнение при ошибке в огуречном рубине - PullRequest
0 голосов
/ 20 февраля 2019

Я хочу, чтобы набор тестов приостанавливался при возникновении ошибки, чтобы я мог отлаживать в браузере, например, как 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

Как мне остановитьисполнение

1 Ответ

0 голосов
/ 22 февраля 2019

Использовать byebug.

Когда вы получаете сообщение об ошибке, используйте сообщение об ошибке, чтобы

  1. получить сценарий, вызывающий проблему (чтобы вы могли запустить его самостоятельно)
  2. получить начальную точку для начала отладки, которая будет выше, где возникает ошибка.

Нет особого смысла в отладке в точке ошибки, потому что большинство ошибок возникает, когдаутверждение не выполнено, и вы просто окажетесь в куче сложного кода тестового фреймворка, который не имеет ничего общего с вашим приложением и уже прошел точку сбоя

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...