Tutto il codice è in esecuzione all'interno di transazioni di database, che vengono ripristinate alla fine di ogni test.
Dal Django testing docs:
Ecco un esempio che sottoclassi da django.test.TestCase, che è una sottoclasse di unittest.TestCase che viene eseguito ogni test all'interno di una transazione per fornire l'isolamento:
Questo "isolamento" significa che tutto ciò che si esegue all'interno del test verrà eseguito il rollback prima dell'avvio del test successivo.
Invece, si desidera utilizzare la classe Python unittest.TestCase
.
Un'altra citazione dalla documentazione Django:
Uso unittest.TestCase evita il costo di gestione di ogni test in una transazione e vampate di calore il database, ma se i test interagiscono con il database il loro comportamento può variare in base l'ordine in cui il test runner li esegue. Questo può portare a test di unità che passano quando vengono eseguiti in isolamento ma falliscono quando vengono eseguiti in una suite.
Fintanto che è possibile garantire che i test non interferiscano tra loro i dati, è possibile utilizzare questa classe in modo sicuro invece del caso di prova di Django.
fonte
2015-07-18 01:31:27
Stai utilizzando test basati sulle transazioni? –
@ThaneBrimhall sono semplici test, sto usando 'TestCase' – user3214546
Aha. Risposta imminente. –