/ / Ускоряване на теста за единица в Django - django, изпълнение, тестване на единица

Ускорете теста за единица в Django - django, изпълнение, тестване на единица

Намерих, че е бавно да се извършва единичен тест, особено при бази данни в Джанго.

Тя премина през целия процес на създаване на база данни, таблици, арматури, след това тестване и накрая ги унищожи.

Дори ми отне почти половин минута да направя всичко това.

Без да обмислям скоростта на моята машина, има ли някаква алтернатива за ускоряване на теста за единица в Джанго или за някакви ускоряващи съвети?

Отговори:

2 за отговор № 1

Това, което правя, е да превключа към SQLite, когато искам да стартирам тестове. Отнема много по-малко време, за да настроите тестовата база данни в SQLite.

Можете лесно да постигнете това, като използвате променен файл с настройки:

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

Или в моя случай,

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

тъй като използвам схемата "настройки като пакет".


2 за отговор № 2

Можете да ускорите тестовете, които ги изпълняват sqlite db, съхранявани в паметта

    DATABASES["default"] = {
"ENGINE": "django.db.backends.sqlite3",
"NAME": ":memory:"
}

0 за отговор № 3

Погледни тази статия, Той има много полезни съвети като:

  • Промяна на функцията за хеширане на пароли на MD5 (направи огромно подобрение за мен).
  • Използване на по-бърза памет в DB.
  • Деактивиране на ненужните приложения и мидълуер.