Тестирование Rails не загружает файл конфигурации пользовательского приложения - PullRequest
1 голос
/ 25 августа 2011

Я только изучаю тестирование на Rails, и я не могу запускать ЛЮБЫЕ тесты (даже примеры "assert true"), потому что я получаю сообщение об ошибке от несвязанной модели, не способной загрузить переменную пользовательского файла конфигурации.

Мое приложение имеет пользовательский файл конфигурации, загруженный для этого эпизода Railscast (http://railscasts.com/episodes/85-yaml-configuration-file) в environment.rb

APP_CONFIG = YAML.load_file("#{::Rails.root.to_s}/config/config.yml")[RAILS_ENV]

Это нормально в обычном приложении, но при тестировании оно не загружается в модель:

    has_attached_file :photo,
                      :bucket => APP_CONFIG['s3_bucket']

Ошибка консоли: `const_missing_from_s3_library ': неинициализированная константа Актив :: APP_CONFIG (NameError)

(Следует отметить, что это НЕ та же модель, которую я пытаюсь протестировать, но я предполагаю, что среда тестирования запускает все приложение?)

Чем отличается среда тестирования, в которой не запускается environment.rb?

Ответы [ 2 ]

3 голосов
/ 26 августа 2011

Я понял это сам, потому что у Heroku и среды тестирования есть одна общая черта:

Heroku НЕ загружает environment.rb до моделей, а также среда тестирования.

Все мои контроллеры загрузили пользовательские конфигурации, упомянутые выше, нормально (в dev и Heroku), но как только модель попыталась загрузить один из них в Heroku или тестировании, она взбесилась.

Урок: для Heroku используйте их пользовательские настройки vars и ссылайтесь на него по ENV ['name'] и добавьте "export name =" what "" к вашему .bash_profile

(или попытка это )

0 голосов
/ 07 февраля 2013

Я положил свой файл внизу application.rb (rails 3.2), и он отлично работал на Heroku.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...