Перенос фикстур в тестовую базу данных Django

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

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

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

from defaults import *

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

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

python manage.py test --settings=settings.test
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
1
0
620
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 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']

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

Подробнее о создании и загрузке фикстур вы можете узнать в документации.

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

JE42 28.06.2021 13:37

Другие вопросы по теме