Мне нужно использовать пользовательскую базу данных для моих тестов. Я могу гарантировать это с помощью пользовательского файла настроек для тестов.
Как я могу экспортировать приборы в эту тестовую базу данных? (например, суперпользователь для тестов или другого экспорта базы данных, связанного с тестами). Я готов применять другие решения вместо фикстур, если фикстуры неприменимы ко второй пользовательской базе данных.
Вот мой пользовательский файл настроек для тестирования: (settings/test.py)
from defaults import *
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'my_test_db',
}
}
Вот как я запускаю тесты:
python manage.py test --settings=settings.test
Вам не нужно указывать отдельную тестовую базу данных, если вы просто хотите загрузить фикстуры для своих тестов. Django автоматически создаст отдельную пустую тестовую базу данных для тестирования.
Если вы хотите повторно использовать некоторые фикстуры на основе вашей базы данных разработки или производства, вы можете попробовать сделать дамп базы данных, вот пример команды для дампа данных в формате yaml. Также поддерживается формат JSON.:
pip install pyyaml
python manage.py dumpdata --format=yaml > /foo_app/fixtures/dump_file.yaml
В ваших настройках вы можете добавить список каталогов приспособлений, например:
FIXTURE_DIRS = ('/foo_app/fixtures/',)
В сценариях тестирования вы можете указать, какой файл фикстуры будет использоваться для класса TestCase, например:
class FooAppTest(TestCase):
"""
Test class for getting Foo
"""
fixtures = ['dump_file.yaml']
После настройки, как описано выше, ваши тесты для этого класса будут загружать файл приспособления (с пользователями или другими объектами, заполненными для тестирования).
Подробнее о создании и загрузке фикстур вы можете узнать в документации.
Как вы справляетесь с этими фикстурами, когда база данных была перенесена?