我将我的功能组织在子文件夹中,如下所示:
app/
features/
users/
feature1.feature
feature2.feature
但每次我保存一个功能时,Guard都会运行我的所有功能(不仅仅是编辑过的功能)。如何将其更改为仅运行已保存的?
这是我的Cucumber Guardfile:
guard 'cucumber', :cli => "--drb --require features/support --require features/step_definitions" do
watch(%r{features/.+\.feature})
watch(%r{features/support/.+}) { 'features' }
watch(%r{features/step_definitions/(.+)_steps\.rb}) { |m| Dir[File.join("**/#{m[1]}.feature")][0] || 'features' }
end
答案 0 :(得分:4)
Aph,答案就在documentation:
对你来说非常重要 了解黄瓜是如何得到的 配置,因为它经常是 陌生行为的起源 护黄瓜。
黄瓜使用cucumber.yml 定义特定运行的配置文件 配置。当你通过 配置通过:cli选项 但不包括特定的个人资料 用--profile,然后是 默认配置 也使用了个人资料。
例如,当你使用的时候 默认的cucumber.yml生成 cucumber-rails,然后是默认值 配置文件强制保护黄瓜 总是运行所有功能,因为它 附加功能文件夹。
仅从Guard
配置黄瓜如果要配置Cucumber 只保护,然后你应该通过 --no-profile to:cli选项。
因此,传入--no-profile
:cli
选项现在可以正常工作,而且我的行为正常。
因为没有阅读文档而感到羞耻!
答案 1 :(得分:1)
似乎不再需要--no-profile
标志,而且它导致不向控制台显示有关运行功能的任何信息(例如,尚未实现的步骤的代码片段),这绝对不是什么你想要的。
今天的方式似乎是使用这样的:all_after_pass
标志(在你的Guardfile中):
guard 'cucumber', :cli => '--drb', :all_on_start => false, :all_after_pass => false do
希望这有帮助。