目前,我正在使用Capybara为我们的Rails 4应用程序编写集成测试。为了使它尽可能轻巧,我编写了一个capybara_helper.rb文件,该文件位于与RSpec一起使用的spec文件夹中。

但是,每次运行RSpec测试时都会加载此文件,从而破坏了测试套件中最初存在的现有Capybara测试的配置。

在启动“正常”单元测试时,是否有一种方法可以告诉/配置RSpec使其不加载该文件?

我的集成测试使用命令RAILS_ENV=test bundle exec rspec --tag @type:capybara加载。我们的普通测试只是使用rake parallel:spec[4]

最佳答案

如果将capybara_helper代码放入模块中,则只能将该模块包含在rails helper中以进行功能测试(即capybara测试):

规格/支持/capybara_helper.rb:

module CapybaraHelper
  # Your code
end


在rails_helper.rb中,仅包括用于功能测试的模块:

Dir[Rails.root.join('spec', 'support', '**', '*.rb')].each { |f| require f }
RSpec.configure do |config|
  config.include CapybaraHelper, type: :feature
end


以上方法也可以与tagged example groups一起使用。因此,在您的情况下,我认为以下方法应该适用(对于以元数据类型:: capybara标记的测试)。

RSpec.configure do |config|
  config.include CapybaraHelper, type: :capybara
end

09-05 23:26
查看更多