Перенос приспособлений в тестовую базу данных Django

#python #django #django-rest-framework

#python #django #django-rest-framework

Вопрос:

Мне нужно использовать пользовательскую базу данных для моих тестов. Я могу обеспечить это с помощью пользовательского файла настроек для тестов.

Как я могу экспортировать приспособления в эту тестовую базу данных? (например, суперпользователь для тестов или другой экспорт базы данных, связанный с тестированием) Я готов применить другие решения вместо приспособлений, если приспособления не применимы ко второй пользовательской базе данных.

Вот мой пользовательский файл настроек для тестирования: (settings/test.py )

 from defaults import *

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': 'my_test_db',
    }
} 
 

Вот как я запускаю тесты:

 python manage.py test --settings=settings.test
 

Ответ №1:

Вам не нужно указывать отдельную тестовую базу данных, если вы просто хотите загрузить приспособления для своих тестов. 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']
 

После настройки, подобной приведенной выше, ваши тесты для этого класса загрузят файл приспособления (с пользователями или другими объектами, заполненными для тестирования).

Вы можете найти более подробную информацию о создании и загрузке приспособлений в документации.

Комментарии:

1. Как вы справляетесь с этими приспособлениями, когда база данных была перенесена?