即使在步骤定义失败后黄瓜也会继续执行,并且它不仅输出失败的步骤,还输出传递的步骤。我需要使用什么选项才能确保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 ~@wip"
%>
default: <%= std_opts %> features
wip: --tags @wip:3 --wip features
rerun: <%= rerun_opts %> --format rerun --out rerun.txt --strict --tags ~@wip
autotest: <%= std_opts %> features --color
答案 0 :(得分:14)
After do |s|
# Tell Cucumber to quit after this scenario is done - if it failed.
Cucumber.wants_to_quit = true if s.failed?
end
推荐的方法是使用黄瓜钩。
答案 1 :(得分:4)
这样可以从命令行快速调用失败:
# `FAST=1 cucumber` to stop on first failure
After do |scenario|
Cucumber.wants_to_quit = ENV['FAST'] && scenario.failed?
end
答案 2 :(得分:4)
从Cucumber 2.1开始,你可以传递--fail-fast标签。
它应该在失败的第一个场景失败并跳过剩余的场景。