Почему Нос не видит ни одной из моих переменных среды? - PullRequest
1 голос
/ 10 февраля 2010

Я только начинаю использовать Nose и Nosetests, и мои тесты не пройдены, потому что Nose не может видеть переменные среды.

Пока что ошибки: AttributeError: у объекта «Настройки» нет атрибута «DJANGO_SETTINGS_MODULE»

Я исправил это, экспортировав DJANGO_SETTINGS_MODULE из .bash_profile

export DJANGO_SETTINGS_MODULE="settings"

Теперь я вижу:
AttributeError: у объекта «Настройки» нет атрибута «DATABASE_SUPPORTS_TRANSACTIONS»

Почему iPython и веб-сервер Django могли видеть эти переменные ENV, но Nose не может?

Ответы [ 2 ]

2 голосов
/ 11 февраля 2010

Как сказал Алок, Nose не вызывает BaseDatabaseCreation.create_test_db ('None') из django.db.backends.creation, поэтому вам нужно будет установить этот параметр вручную.

Я не смог заставить это работать.

Однако я нашел НосДжанго.

Установите NoseDjango с помощью:

easy_install django-nose  

Так как django-nose расширяет встроенную тестовую команду Django, вы должны добавить ее в INSTALLED_APPS в settings.py:

INSTALLED_APPS = (
...
'django_nose',
...
)

Затем установите TEST_RUNNER в settings.py:

TEST_RUNNER = 'django_nose.run_tests'

После настройки NoseDjango вы можете запустить свои тесты Nose с помощью:

manage.py test
1 голос
/ 10 февраля 2010

Видимо, нос не вызывает create_test_db() в django/db/backends/creation.py, поэтому вы видите эту ошибку. Просто установите его на None или вызовите метод самостоятельно. Не уверен, исправлено ли это в последней версии Django.

...