2014-01-06 2 views
1

Я использую Rubymine 6.0 для написания тестов огурца с использованием рубина, и я очень новичок в этом.Как сделать паузу тестов вместо пропусков без использования точки останова, когда она не работает на шаге во время работы в режиме отладки - огурец Rubymine?

Когда я запускаю тест и шаг не проходит, рубинизм пропускает этот шаг и не выполняет сценарий.

Это имеет смысл для меня, когда я запускаю сотни тестов, и я хочу, чтобы это произошло так, как сейчас.

Но как сделать тестовую паузу на этом неудавшемся шаге или той конкретной строке кода при запуске теста в режиме отладки? Есть ли способ обойти, чем поставить точку останова на шаге, прежде чем он потерпит неудачу, а затем перейдите в нее?

Я хочу, чтобы тест остановился на той конкретной точке, где он потерпел неудачу, и позвольте мне взять верх.

Спасибо, RK

+0

Я решил решить эту проблему. Похожу на драгоценный камень под названием PRY. он присоединяется к отладчику и приостанавливает проверку в этом неудавшемся месте. Теперь я могу взять верх, чтобы понять, что не так со страницей. Тест должен выполняться через cmd. – user3165943

ответ

0

Все утверждения во всех рамках тестирования, что я знаком с подъемным исключением некоторых видов, когда ожидания не выполняется (или утверждение не) в тесте. RubyMine позволяет настроить «контрольные точки исключения» - заставить его приостановить выполнение, когда возникает исключение определенного типа.

Я только что попробовал RubyMine 6.0.2 с Ruby 2.1 и последним rspec. Rspec повышает RSpec :: Ожидания :: ExpectationNotMetError, когда ожидания не выполняются (в соответствии с исходным кодом rspec), но по какой-то причине RubyMine не останавливается на этой точке останова - не работает!

Другим решением, которое сделал работу для меня было установить обычную точку останова в файле исходного кода RSpec в: RSpec-ожидания-2.14.0/Библиотека/RSpec/ожидания/fail_with.rb, в методе «fail_with "- этот метод вызывается, когда любое утверждение/ожидание терпит неудачу.

Я уверен, что вы могли бы сделать что-то подобное с Cucumber: просто отлаживайте исходный код метода утверждения и поставьте там точку останова.

+0

Я использовал драгоценный камень под названием pry и использовал этот код в файле моих крючков. Это решило мою проблему. После этого | сценарий | если $ debug && scene.failed? binding.pry end – user3165943