@override_settings
замечательно, если между конфигурациями рабочей среды и среды тестирования не так много различий.
В противном случае вам лучше иметь другие файлы настроек. В этом случае ваш проект будет выглядеть так:
your_project
your_app
...
settings
__init__.py
base.py
dev.py
test.py
production.py
manage.py
Таким образом, вам нужно сохранить большинство ваших настроек в base.py
, а затем в других файлах вам нужно импортировать все оттуда и переопределить некоторые параметры. Вот как будет выглядеть ваш test.py
файл:
from .base import *
DEBUG = False
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': 'app_db_test'
}
}
PASSWORD_HASHERS = (
'django.contrib.auth.hashers.MD5PasswordHasher',
)
LOGGING = {}
А затем вам нужно либо указать опцию --settings
, как в ответе @MicroPyramid, либо указать переменную окружения DJANGO_SETTINGS_MODULE
, и тогда вы сможете запустить свои тесты:
export DJANGO_SETTINGS_MODULE=settings.test
python manage.py test