Загружать файлы lib при запуске Test :: Unit tests в Rails? - PullRequest
3 голосов
/ 19 июня 2009

Я добавил несколько модулей и поместил их в свой каталог / lib, и я думаю, что каталог lib магически загружается Rails (если только я не загрузил каталог lib где-то в начале своего проекта и не забыл об этом). Однако, когда я запускаю модульные тесты, которые требуют дополнительных модулей, они не загружаются.

Должен ли каталог lib загружаться автоматически при запуске тестов, или есть элегантный способ сделать это для тестирования? Я надеялся, что rake scripts + Test :: Unit загрузили бы мою среду Rails точно, но это не так. Мне осталось добавить что-то подобное в test_helper.rb:

require File.expand_path(File.dirname(__FILE__) + "/../lib/foo")

Я запускаю свои тесты со стандартными сценариями рейка, такими как:

rake test
rake test:units
rake test:functionals

1 Ответ

4 голосов
/ 19 июня 2009

Ваш каталог lib не загружается автоматически rails. Загрузка происходит через ActiveSupport :: Зависимости, переопределяющие const_missing. Когда вы впервые используете константу, если она не определена, Rails пытается найти ее в каталоге lib (и в других местах пути загрузки). Для этого он использует схему именования, в которой то, что называется SomeClass, должно быть в some_class.rb. Rails в тестовом режиме использует тот же механизм. Проверьте ваши config / environment / test.rb и config / Environment / Development.rb, чтобы увидеть, если вы делаете что-то смешное с требованиями. Короче, проверьте свою схему именования.

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