Как сообщить Django о сохранении тестовой базы данных?

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

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

Я бы предпочел, чтобы мне не приходилось подклассифицировать тестировщика самостоятельно, но это то, что мне нужно будет сделать, если я не найду решение в ближайшее время. есть ли что-то подобное уже в жизни?

Ответы

Ответ 1

В django1.8 добавлен новый параметр для команды manage.py test --keepdb

./manage.py test --keepdb

Ответ 3

Вы пытались использовать базу данных SQLite в памяти для тестов? Это намного быстрее, чем использование базы данных на основе дисков.

Ответ 4

Я использую Djang-нос. Если вы установите env var REUSE_DB = 1, он не уничтожит БД после запуска тестов и повторного использования той же БД для следующего запуска. Всякий раз, когда ваша схема изменяется, просто установите REUSE_DB = 0 и выполните один "полный" запуск. После этого reset это до 1, и вам хорошо идти.

https://github.com/django-nose/django-nose