Намерих, че е бавно да се извършва единичен тест, особено при бази данни в Джанго.
Тя премина през целия процес на създаване на база данни, таблици, арматури, след това тестване и накрая ги унищожи.
Дори ми отне почти половин минута да направя всичко това.
Без да обмислям скоростта на моята машина, има ли някаква алтернатива за ускоряване на теста за единица в Джанго или за някакви ускоряващи съвети?
Отговори:
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.
- Деактивиране на ненужните приложения и мидълуер.