Как мне сказать Django сохранить мою тестовую базу данных? - PullRequest
14 голосов
/ 28 июня 2010

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

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

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

Ответы [ 4 ]

13 голосов
/ 25 декабря 2015

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

./manage.py test --keepdb
6 голосов
/ 28 июня 2010

django-test-utils предоставляет функциональные возможности сохраняемых тестов базы данных, http://django -test-utils.readthedocs.org / ен / последний / keep_database_runner.html

4 голосов
/ 28 июня 2010

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

1 голос
/ 06 марта 2015

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...