Подтвердить что ты не робот

Как убедиться, что огурец прекращает выполнение, когда шаг выходит из строя?

Огурец продолжает выполнение даже после неудачного определения шага, и он выводит не только неудачные шаги, но и проходящие. Какой параметр мне нужно использовать, чтобы гарантировать, что Cucumber прекратит выполнение, как только он столкнулся с неудачным шагом?

Это мой файл cucumber.yml

<%
rerun = File.file?('rerun.txt') ? IO.read('rerun.txt') : ""
rerun_opts = rerun.to_s.strip.empty? ? "--format #{ENV['CUCUMBER_FORMAT'] || 'progress'} features" : "--format #{ENV['CUCUMBER_FORMAT'] || 'pretty'} #{rerun}"
std_opts = "--format #{ENV['CUCUMBER_FORMAT'] || 'pretty'} --strict --tags [email protected]"
%>
default: <%= std_opts %> features
wip: --tags @wip:3 --wip features
rerun: <%= rerun_opts %> --format rerun --out rerun.txt --strict --tags [email protected]
autotest: <%= std_opts %> features --color
4b9b3361

Ответ 1

Используйте крючок огурца:

After do |s| 
  # Tell Cucumber to quit after this scenario is done - if it failed.
  Cucumber.wants_to_quit = true if s.failed?
end

Или поднимите исключение.

Рекомендуемый способ - использовать крючок огурца.

Ответ 2

Это позволяет быстро вызывать быстрое выполнение из командной строки:

# `FAST=1 cucumber` to stop on first failure
After do |scenario|
  Cucumber.wants_to_quit = ENV['FAST'] && scenario.failed?
end

Ответ 3

Как и в Cucumber 2.1, вы можете передать тег --fail-fast.

Он должен потерпеть неудачу при первом неудачном сценарии и пропустить оставшиеся сценарии.

Часть этого PR https://github.com/cucumber/cucumber-ruby/pull/906