目前,我正在使用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