django unittest для использования реальной базы данных

В настоящее время я пишу тестовые примеры для представлений, которые в конечном итоге также используют базу данных. По умолчанию тестовая база данных создается и удаляется после запуска теста.

Поскольку сама база данных является базой данных для разработки, я не хочу, чтобы мой тест создавал отдельную базу данных, а использовал только захватывающие. Также я хотел бы обратить ваше внимание на то, что в моей среде базы данных создаются и предоставляются, а django не может запускать миграцию или создавать базы данных.

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


person user    schedule 07.09.2020    source источник


Ответы (1)


Я думаю, что основная причина этого вопроса заключается в том, что вашему пользователю базы данных django не предоставлено разрешение на создание/удаление базы данных.

Django необходимо создать и удалить тестовую базу данных для модульного тестирования. Для этой цели нельзя использовать существующую базу данных. Почему нам не разрешено использовать существующую базу данных в модульном тесте, потому что данные могут быть изменены любым, у кого есть такое же разрешение на базу данных, и django может не иметь контроля над обновлениями, которые они делают. Это может закончиться неудачей контрольная работа.

Это ясно объяснено в ответе на другой вопрос

Если ваш администратор БД может предоставить вашему пользователю Django необходимый доступ для того, чтобы тестовый модуль работал должным образом, вы можете использовать Fixtures. Фикстуры похожи на файлы данных, их можно создать в среде разработки, а затем использовать в настройке модульного теста для импорта данных из фикстур в тестовую базу данных, созданную Django.

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

Дополнительные сведения о фикстурах см. на странице Использование фикстур с тестовыми примерами Django.

person Badhusha Arabusha    schedule 07.09.2020