为什么 Cucumber 会自动加载 features/support 之外的 .rb 文件

Why does Cucumber automatically load .rb files outside of features/support

我正在阅读 The Cucumber Book,它提到 features/support 目录中的所有文件都是自动需要的 - 首先需要 env.rb。我不喜欢将文件放入 features/support 时无法控制所需文件顺序的事实,因此我创建了一个 features/setup 目录来保存我的 .rb 文件。然后,我按照我需要的顺序在 env.rb 文件中要求它们。我的 features/support 文件夹只包含 env.rb.

我看到文件被要求两次。看起来黄瓜需要任何 .rb 文件,不管它在哪个文件夹中。为什么会这样?我已经 运行 黄瓜

bundle exec cucumber -r features

我有一个config/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

但我认为这不是导致问题的原因。自从 Cucumber Book 写成使 cucumber 加载 features 下的所有 .rb 个文件以来,cucumber 有什么变化吗?有没有办法关闭它?

features/ 文件夹中的所有内容都将由 Cucumber 加载。我不能说书中写了什么,但根据黄瓜书的一位作者:

If you want explicit loading and not automatic loading, just put your files outside the features folder.

Source

我还要说的是,如果您不需要自己加载,您可能应该让它按照预期的方式工作。至少,已经使用过 Cucumber 的人会更好地了解您的项目是如何工作的。