Как сказать Django сохранить мою тестовую базу данных?
запуск модульных тестов Django-это далеко слишком медленно. Особенно когда я просто хочу запустить один тест, но тест бегун хочет создать всю базу и уничтожить все это только для одного теста.
в случае, если я не изменил ни одну из моих моделей, я мог бы сэкономить уйму времени, если бы Django не пытался создать и уничтожить всю базу данных, а вместо этого сохранил ее для следующего раза. Еще лучше, было бы здорово, если бы тестовый Бегун был способен возможность видеть, какие модели изменились и только заменяют те, которые до запуска тестов.
Я бы предпочел не подкласс тестового бегуна сам, но это то, что я собираюсь сделать, если я не найду решение в ближайшее время. есть ли что-то подобное уже существует?
4 ответов
в django1.8 добавлен новый параметр для manage.py test
команда --keepdb
./manage.py test --keepdb
django-test-utils обеспечивает постоянную функциональность тестового бегуна базы данных, http://django-test-utils.readthedocs.org/en/latest/keep_database_runner.html
вы пробовали использовать базу данных SQLite в памяти для тестов? Это намного быстрее, чем использовать дисковую базу данных.
Я использую Djang-нос. Если вы установите env var REUSE_DB=1, он не будет уничтожать БД после запуска тестов и повторно использовать ту же БД для следующего запуска. Всякий раз, когда ваша схема изменяется, просто установите REUSE_DB=0 и выполните один "полный" запуск. После этого сбросьте его до 1, и вы хорошо пойдете.