如何在默认情况下排除标签,但在调用另一个标签时又包括那些标签?

时间:2018-08-03 14:05:03

标签: selenium-webdriver rspec capybara rspec-rails qa

上下文:我目前有一些使用selenium-webdriver标签为:qa的水豚规格。由于我需要花一些时间运行默认运行rspec的程序,因此我想将它们排除在外。为此,我在config.filter_run_excluding :qa中加入了spec_helper.rb。目前,此功能正在按预期运行。

期望的行为:默认情况下,我希望排除:qa标签。但是,我想在运行:qa时包括所有rspec -t ~all规范。当前,这是另一个应用程序中的行为。在另一个应用程序中,此行为由以下内容覆盖。

unless config.filter_manager.exclusions.rules[:all]
    config.filter_run_excluding :functional_test
  end

由于某种原因,这不适用于开发中的当前应用。我上面描述的方式是它需要工作的方式,因为相同的行为需要在各个应用程序中工作。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

指定-t ~all表示要运行没有元数据标签all的所有内容,并将其设置为filter_manager.exclusions.rules。通过告诉测试程序不要使用all元数据运行测试来设置测试以运行所有测试是很奇怪的,但是要做到这一点,您应该做的与其他应用相同。

RSpec.configure do |config|
  unless config.filter_manager.exclusions.rules[:all]
    config.filter_run_excluding :qa
  end
end

如果这对您不起作用,那么您需要提供一个测试示例,以便我们可以准确地看到要为其设置的元数据以及其余的RSpec配置,以便我们可以看到可能有冲突的地方。