Spork Capybara,config.cache_classes冲突

时间:2011-06-10 17:25:53

标签: ruby-on-rails capybara spork

我正在尝试使用TestUnit设置Spork和Capybara,并且正在运行 进入test.rb配置问题。

问题在于Spork需要这样做 config.cache_classes设置为false,以便模型中的更改可以 在运行测试时反映出来而无需重置Spork 时间。

另一方面,Capybara似乎需要这样做 config.cache_classes设置为true,否则进行集成测试 只是似乎没有工作。

我只是在寻找任何可能的解决方案/解释。是 这个东西只存在于TestUnit中,或者这可能是一个 我应该报告错误吗?任何帮助都会很大 理解!

2 个答案:

答案 0 :(得分:3)

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

Spork.each_run do
  ActiveSupport::Dependencies.clear
  ActiveRecord::Base.instantiate_observers
end if Spork.using_spork?

希望这样可以让Capybara的cache_classes成为现实,但它也可以让你的模型和观察者在测试运行之间重新加载。

答案 1 :(得分:1)

我遇到了与spork和黄瓜类似的问题。我找到的解决方案是:

config.cache_classes = (ENV['DRB'] == 'true' ? false : true)

spork设置DRB环境。我不认为这是解决这个问题的最优雅的方法,但如果水豚设置了一些env变量,你可以使用它吗?