Как сделать так, чтобы помощники и модели перезагружались в RSpec при использовании Spork? - PullRequest
8 голосов
/ 29 ноября 2011

Кажется, что мои помощники (а иногда и мои модели) не перезагружаются при каждом запуске с Spork.Что я должен поместить в мой блок "Spork.each_run"?

Ответы [ 3 ]

8 голосов
/ 17 декабря 2011

У меня была такая же проблема, поэтому я установил ее в своем блоке 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 / средах / test.rb:

config.cache_classes = !(ENV['DRB'] == 'true')
1 голос
/ 29 ноября 2011

Возможно, вы загружаете их в блок prefork .Если вы загрузите материал туда, ваш тест будет выполняться быстрее, но иногда вам придется перезагрузить его.Вы можете загрузить блок «each_run», но тест будет медленнее.Если вы предпочитаете скорость, вы можете перезапустить сервер Spork, когда увидите, что вам нужна перезагрузка.Таким образом, блок prefork снова запустится, и ваши модели и помощники будут перезагружены.

0 голосов
/ 27 сентября 2012

У меня никогда не было таких проблем, и, может быть, это потому, что я также использую камень Guard, как описано в RailsCast Райана Бейтса?

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

...