/ / Accelera unittest in Django - django, performance, unit test

Accelerare l'unittest in Django - Django, performance, unit test

Ho scoperto che è lento eseguire unittest soprattutto con le operazioni di database in Django.

Ha attraversato l'intero processo di creazione di database, tabelle, dispositivi, quindi di test e infine di distruggerli.

Mi ci è voluto anche quasi mezzo minuto per fare tutte queste cose.

Senza considerare la velocità della mia macchina, c'è qualche alternativa per accelerare unittest in Django o qualche suggerimento di accelerazione?

risposte:

2 per risposta № 1

Quello che faccio è passare a SQLite quando voglio eseguire i test. Ci vuole molto meno tempo per impostare il database di test in SQLite.

Puoi farlo facilmente usando un file di impostazioni modificato:

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

O nel mio caso,

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

mentre utilizzo lo schema "impostazioni come pacchetto".


2 per risposta № 2

È possibile accelerare i test eseguendoli sqlite db archiviato in memoria

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

0 per risposta № 3

Dare un'occhiata a Questo articolo. Ha molti consigli utili come:

  • Cambiare la funzione di hashing della password in MD5 (fatto un grande miglioramento per me).
  • Utilizzo di un DB in memoria più veloce.
  • Disabilitazione di app e middleware non necessari.