2013-03-18 4 views
1

Я создал новое приложение для рельсов, добавил фиктивный контроллер с функциональным тестом «assert true» и инициализатором, который вызывает «puts Rails.env».Во время тестирования, почему рельсы запускают мои инициализаторы дважды?

Когда я запускаю тест рейка в этом приложении, инициализатор печатает «разработку» и «тест».

Может ли кто-нибудь сказать мне, почему это так?

Peter.

ответ

1

бегущие грабли загружается рельсы, затем запустить тесты (test_helper, spec_helper) загружает рельсы снова для тестирования среды

если вы используете RSpec, вы можете вызвать его без граблей

bundle exec rspec spec 

довольно уверен, с мини-тестом вы можете использовать использование рейка или рубинового исполняемого файла

не должно быть никаких плохих побочных эффектов, выполняющих их с помощью рейка, просто чтобы вам нужно было дважды загружать рельсы

+0

Проблема в том, что у меня есть код, который необходимо запустить в среде разработки, но НЕ в тестовой среде. Странная подделка головы, которую рельсы делают, чтобы всегда запускать среду разработки, означает, что нет реального способа добиться этого. Есть ли причина для загрузки рельсов в режиме dev при запуске тестов? – spierepf

+0

rake загружается в режиме разработки - он не должен влиять на ваши тесты - они будут работать в другом процессе в тестовой среде – house9

+1

Это было бы правдой, за исключением того факта, что инициализатор, о котором идет речь, заполняет базу данных. Я хочу, чтобы население произошло для развития, но не для тестирования. – spierepf

 Смежные вопросы

  • Нет связанных вопросов^_^