Как я могу выполнить django модульные тесты (через manage.py) быстрее

Не существует варианта UPDATE, который бы имел такое же поведение, по той простой причине, что он делал бы то же самое, что и INSERT ... ON CONFLICT. Не беспокойтесь об имени.

Если у вас есть миллионы обновлений для каждой строки в день, вам следует гораздо больше беспокоиться о VACUUM.

Если вы можете, не индексируйте атрибуты, которые будут часто обновляться, и создайте таблицу с fillfactor ниже, чем 100. Вы можете получить намного более эффективные & ldauo; HOT updates & rdquo ;, которые значительно уменьшат количество записи на диск и VACUUM требуется.

Обязательно настройте автовакуум на более агрессивный, уменьшив autovacuum_vacuum_cost_delay.

9
задан MikeN 5 March 2009 в 20:26
поделиться

3 ответа

Обратите внимание, что Вы не должны выполнять весь набор тестов каждый раз. Можно просто выполнить набор тестов для отдельного приложения путем выполнения manage.py test appname (или для нескольких приложений сразу с manage.py test app1 app2 ...).

Мой обычный рабочий процесс должен просто запустить тесты для приложения, я продолжаю работать, поскольку я работаю, и выполнение полный комплект, прежде чем я буду фиксировать свой следующий набор изменений.

7
ответ дан 4 December 2019 в 14:31
поделиться

Я не попробовал его, но была недавняя регистрация этого, как, предполагается, помогает, позволяя тестам быть выполненным в транзакциях, которые затем откатываются:

Документация и комментарий разработчика

4
ответ дан 4 December 2019 в 14:31
поделиться

Вы можете запускать свои тесты, используя базу данных sqlite бэкэнд. Это не подходит для полного тестового прогона (так как db отличается), но для проверки работоспособности это экономит много времени. См .: http://mindlesstechnology.wordpress.com/2008/08/16/faster-django-unit-tests/

1
ответ дан 4 December 2019 в 14:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: