我可以在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