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

2024-04-27

在 _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

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

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

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

理想情况下,我想找到一个适用于每个文件的表单,但让我进行一次可用性检查,因为这是一项有点昂贵的检查,并且我在测试中有几个受其控制的示例。


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

尝试一下这个方法就可以了。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我可以在 rspec 中使用多个排除过滤器吗? 的相关文章

随机推荐