8

似乎我的助手(有时是我的模型)在每次使用 Spork 运行时都没有重新加载。我应该在“Spork.each_run”块中放入什么?

4

3 回答 3

8

我有同样的问题,所以我在我的 each_run 块中设置了这个:

Spork.each_run do
  # This code will be run each time you run your specs.
  ActiveSupport::Dependencies.clear
  ActiveRecord::Base.instantiate_observers
  FactoryGirl.reload

  Dir[File.join(File.dirname(__FILE__), '..', 'app', 'helpers', '*.rb')].each do |file|
    require file
  end
end

另外,不要在 config/environments/test.rb 中忘记这一点:

config.cache_classes = !(ENV['DRB'] == 'true')
于 2011-12-16T20:36:24.737 回答
1

这可能是因为您将它们加载到prefork块中。如果你在那里加载东西,你的测试运行得更快,但有时你需要重新加载。您可以加载“each_run”块,但测试会更慢。如果您更喜欢速度,您可以在看到需要重新加载时重新启动 Spork 服务器。这样,prefork块将再次运行,您的模型和助手将被重新加载。

于 2011-11-29T00:22:25.130 回答
-3

我从来没有遇到过这些问题,也许是因为我也在使用 Ryan Bates 的 RailsCast 中描述的 Guard gem?

http://railscasts.com/episodes/285-spork

于 2012-09-27T13:49:37.503 回答