我可以在rspec中使用多个排除过滤器吗?

在_spec.rb文件中,我设置了一个排除过滤器,如下所示:

RSpec.configure do |config|
  # we need determine this once at the very front
  # and the result be available in the instance
  server_success = server1_available?

  config.exclusion_filter = {
    :svr1 => lambda {|what|
      case what
      when :available
        !server_success
      end
    }
  }
end

然后在我的文件中

describe :get_items_by_client, :svr1 => :available do

如果服务器不可用,则阻止测试执行。

这一切工作正常,如果我单独运行spec文件。 然而,我在另一个文件中有类似的代码来控制访问不同服务器的测试,并且当我运行它们时,我只能看到每个服务器检查都已完成(我有一个放入“serverX_available?”代码),但仅限于一组测试被排除在外(即使这两个服务器都不可用)。

我开始认为你可以只有一个排除过滤器,但是我可以在任何地方找到任何与此相关的文档。 这是可行的每个文件的基础? 我可以在一个支持文件中包含一个复杂的过滤器,但是当我仅仅运行一个spec文件时,如何将它合并到一起?

理想情况下,我想找到一个每个文件都有效的表单,但让我来做可用性检查一次,因为它是一个比较昂贵的检查,我在测试中有几个例子由它控制。


config.filter_run_excluding :cost => true
config.filter_run_excluding :slow => true

试试这个,这个工程。

链接地址: http://www.djcxy.com/p/59289.html

上一篇: can I use multiple exclusion filters in rspec?

下一篇: Parsing Java String into GMT Date