运行function时不会自动加载黄瓜步骤

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

我跑了:

cucumber --verbose 

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

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

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

 cucumber -r features/step_definitions/web_steps.rb 

我认为这可能只是我在我的应用程序结构中的“step_definitions”文件夹中创建的自定义步骤文件,但看起来标准的“web_steps”文件也没有被加载。

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

谢谢。

您可以在cucumber.yml文件中包含-rfunction ,以便黄瓜加载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 

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

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

 cucumber --no-profile