Ускорить юнит-тест в Джанго - PullRequest
3 голосов
/ 31 декабря 2011

Я обнаружил, что выполняется медленный тест, особенно с операциями с базами данных в Django, медленно.

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

Даже все это заняло у меня почти полминуты.

Без учета скорости моей машины, есть ли альтернатива ускорению юниттеста в Django или какие-нибудь подсказки по ускорению?

Ответы [ 3 ]

2 голосов
/ 31 декабря 2011

Вы можете ускорить выполнение тестов в sqlite db, хранящихся в памяти

    DATABASES['default'] = {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': ':memory:'
    }
2 голосов
/ 31 декабря 2011

Я переключаюсь на SQLite, когда хочу запустить тесты. Настройка тестовой базы данных в SQLite занимает намного меньше времени.

Вы можете легко сделать это, используя измененный файл настроек:

$ python manage.py test my_app --settings=test_settings

Или в моем случае

$ python manage.py test my_app --settings=settings.test

как я использую схему «настройки как пакет».

0 голосов
/ 26 марта 2014

Взгляните на эту статью .В нем много полезных советов, таких как:

  • Изменение функции хеширования пароля на MD5 (для меня это огромное улучшение).
  • Использование более быстрой базы данных в памяти.
  • Отключение ненужных приложений и промежуточного программного обеспечения.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...