#ruby-on-rails #rspec #spork
#ruby-on-rails #rspec #spork
Вопрос:
Я использую Spork для ускорения моих тестов RSpec. К сожалению, мой application_controller.rb
не перезагружается при каждом запуске, так что мне приходится перезапускать Spork при его изменении. Есть ли способ принудительно перезагружать при каждом тестовом запуске? Я думаю, мне нужна какая-то дополнительная строка в Spork.each_run
.
Ответ №1:
Попробуйте поместить ActiveSupport::Dependencies.clear
в блок Spork.each_run. Затем я бы удалил это, когда вы закончите автоматическое тестирование application_controller.rb, хотя новая задержка не должна быть слишком большой.
Ответ №2:
У меня была такая же проблема, но Spork предназначен для автоматической перезагрузки application_controller.rb без изменений. Итак, я углубился в это и, как упомянуто в комментарии к этому сообщению в блоге, запустил spork --diagnose
. В нем перечислены все файлы, первоначально загруженные spork, и обратная трассировка того, как был загружен каждый файл. Это показало мне, что в моем приложении у меня случайно был инициализатор, который ссылался на подкласс ApplicationController и, таким образом, он загружался изначально. Как только я разорвал эту зависимость, мой application_controller.rb начал корректно перезагружаться при каждом тестовом запуске при использовании Spork.