运行功能时,黄瓜步骤不会自动加载

Pet*_*ete 11 testing ruby-on-rails cucumber

我最近在我的机器上更新了Cucumber宝石('cucumber'和'cucumber-rails')并遇到了几个问题.我目前正在战斗的是,Cucumber没有自动加载我的功能的任何已定义步骤.这导致我的命令行告诉我"我可以为我的功能中使用的每个步骤实现这些片段的未定义步骤的步骤定义".

我跑了:

cucumber --verbose
Run Code Online (Sandbox Code Playgroud)

......并且可以看到以下内容:

代码:*vendor/plugins/paperclip/cucumber/paperclip_steps.rb

但是,除非我指定要加载的文件,否则Cucumber不会加载任何步骤:

cucumber -r features/step_definitions/web_steps.rb
Run Code Online (Sandbox Code Playgroud)

我认为这可能只是我在我的应用程序结构中的"step_definitions"文件夹中创建的自定义步骤文件,但它似乎也没有加载标准的"web_steps"文件.

非常感谢任何遇到过这个问题的人或者知道为什么会这样.

谢谢.

小智 12

您可以在cucumber.yml文件中包含-r feature,以便黄瓜加载feature /目录中的所有步骤定义.在std_opts中添加上面的内容.请参阅下面附加的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'] || 'progress'} --strict --tags ~@wip -f feature"
%>
default: <%= std_opts %> features
wip: --tags @wip:3 --wip features
rerun: <%= rerun_opts %> --format rerun --out rerun.txt --strict --tags ~@wip
Run Code Online (Sandbox Code Playgroud)

  • +1.只是注意,默认文件夹是`features` not feature. (4认同)

Pet*_*ete 2

好的,我暂时想出了一个解决方案。我不确定它是否正确。运行 cucumber 命令时简单地禁用配置文件似乎可以确保为功能加载正确的步骤定义。

我现在可以运行我的测试:

cucumber --no-profile
Run Code Online (Sandbox Code Playgroud)