【问题标题】:Skipping specific rspec tests in guard在警卫中跳过特定的 rspec 测试
【发布时间】:2012-09-25 11:28:58
【问题描述】:

我正试图让守卫跳过一些测试(那些需要硒才能运行的测试)。 我已经为它们添加了 browser_required 标记,并使用“--tag ~browser_required”运行 rspec 将它们过滤掉。

但是我无法让守卫不运行它们,我在守卫文件中设置了 :cli => "--tag ~browser_required"。这是我的完整保护文件http://pastebin.com/pGuWAQm8

【问题讨论】:

    标签: ruby-on-rails rspec guard


    【解决方案1】:

    在您的要点中,它确实有两个 rspec 块(一个带有 cli,另一个没有)。也许删除第二个至少会让这个工作正常。

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

        【解决方案3】:

        cli 选项在 Rspec 3 中已弃用。请改用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

        【讨论】:

          猜你喜欢
          • 2012-11-10
          • 1970-01-01
          • 2012-02-15
          • 1970-01-01
          • 2014-04-24
          • 1970-01-01
          • 2011-07-21
          • 2022-01-05
          • 1970-01-01
          相关资源
          最近更新 更多