2012-07-12 11 views
12

Stavo giocando con il framework pyUnit per testare la mia applicazione in modo unittest. C'è qualche modo di saltare tutti i test in classe se una determinata condizione in setUpClass fallisce?Salta unittest se una condizione in SetUpClass fallisce

Attualmente, sto impostando l'ambiente (creazione di risorse, configurazione delle impostazioni globali) in setUpClass. Ma, se una di queste creazioni di risorse fallisce ... sto facendo eccezione. Invece di quello voglio saltare l'intera suite di test.

risposta

23

avuto la risposta:

Per coloro che si blocca qui-

unittest può essere saltata da setUpClass nel seguente modo-

raise unittest.SkipTest(message) 
+0

Ecco il doc http://docs.python.org/library/unittest.html#skipping-tests-and-expected-failures –

+2

si può anche sollevare questo dai test stessi se stabiliscono che non dovrebbero essere eseguiti per qualsiasi motivo. – gps

+0

C'è un modo per evitarlo senza generare eccezioni? Voglio vedere 0 eccezioni e 0 errori quando saltiamo in setupclass. Questo metodo mostra un'eccezione nei risultati dell'esecuzione. –

1

Invece di sollevare esplicitamente l'eccezione SkipTest, il documentation suggerisce di utilizzare TestCase.skipTest(). Per esempio:

def setUp(self): if skip_tests_flag: self.skipTest('skipped test due to skip_tests_flag')

+0

sì, ma passi più tempo nei metodi setUpClass e setUp per il test che stai per saltare –