Spork Capybara,config.cache_classes冲突

joe*_*lis 5 ruby-on-rails capybara spork

我正在尝试使用TestUnit设置Spork和Capybara,并且遇到了test.rb配置问题.

问题是Spork要求将config.cache_classes设置为false,以便在运行测试时可以反映模型中的更改,而无需一直重置Spork.

另一方面,Capybara似乎要求将config.cache_classes设置为true,否则集成测试似乎不起作用.

我只是在寻找任何可能的解决方案/解释.这是仅存在于TestUnit中的东西,还是这可能是一个错误,我应该这样报告?任何帮助将不胜感激!

Pan*_*kos 3

我建议采取与此类似的方法。您要做的主要事情是将 config.cache_classes 设置为 true,但强制 Spork 在每次运行时重新加载模型和依赖项:

Spork.each_run do
  ActiveSupport::Dependencies.clear
  ActiveRecord::Base.instantiate_observers
end if Spork.using_spork?
Run Code Online (Sandbox Code Playgroud)

希望这将使 cache_classes 对于水豚来说是正确的,但它也将允许您的模型和观察者在测试运行之间重新加载。