在守卫中跳过特定的rspec测试

时间:2012-09-25 11:28:59

标签: ruby-on-rails rspec guard

我正试图让警卫跳过一些测试(那些需要运行硒的测试)。 我已经向他们添加了browser_required标签,并运行了带有“--tag~ browser_required”的rspec过滤掉它们。

然而,我无法控制不运行它们,我已经设置:cli =>护卫文件中的“--tag~ browser_required”。这是我的完整警卫档案http://pastebin.com/pGuWAQm8

3 个答案:

答案 0 :(得分:1)

在你的要点中它确实有两个rspec块(一个有cli而另一个没有)。也许删除第二个将至少使这个工作。

答案 1 :(得分:0)

检查我的配置:https://github.com/lucassus/locomotive/blob/master/Guardfile 您可以将cli参数传递给rspec命令并使用--filter选项来拒绝某些规范

guard 'rspec', :version => 2, :cli => "--drb --color --tag ~slow:true" {}

在您的示例中,您可以使用--tag ~js:true

答案 2 :(得分:0)

在Rspec 3中不推荐使用cli选项。请改用cmd。 例如:

guard :rspec, cmd: "bundle exec rspec --color --tag ~speed:slow", failed_mode: :focus do
  require "guard/rspec/dsl"
  dsl = Guard::RSpec::Dsl.new(self)

  # RSpec files
  rspec = dsl.rspec
  watch(rspec.spec_helper) { rspec.spec_dir }
  watch(rspec.spec_support) { rspec.spec_dir }
  watch(rspec.spec_files)

  watch(%r{\Aapp/(.+)\.rb\z})   { |m| "spec/#{m[1]}_spec.rb" }
end

详细了解Rspec标记here