2015-05-28 12 views
11

Sto usando Django 1.8 e the docs per utilizzare --keepdb per salvare il database di test.Come posso mantenere i dati di test dopo che i test di Django sono stati completati?

Lo sto facendo e il database è lì ma ogni volta che lo vedo, è vuoto e non contiene dati.

C'è un modo che posso preservare in modo che io possa vedere cosa c'è dentro?

+0

Stai utilizzando test basati sulle transazioni? –

+0

@ThaneBrimhall sono semplici test, sto usando 'TestCase' – user3214546

+0

Aha. Risposta imminente. –

risposta

9

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.

+0

Grazie, hai ragione. – user3214546

Problemi correlati