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 に答える