5.3.7 Oggetti TestResult

Un oggetto TestResult immagazzina i risultati di una serie di test. Le classi TestCase e TestSuite assicurano che i risultati siano immagazzinati propriamente; gli autori dei test non devono preoccuparsi di registrazione la conclusione del test.

Gli ambienti di test costruiti su unittest possono voler accedere all'oggetto TestResult generato eseguendo una serie di test per fini reportistici; a questo scopo il metodo TestRunner.run() restituisce un'istanza di TestResult.

Ogni istanza contiene il numero totale di test eseguiti e la raccolta di fallimenti ed erorri occorsi in questi test. La raccolta contiene tuple di (testcase, traceback), dove traceback è una stringa contenente una versione formattata del traceback di quella eccezione.

L'istanza TestResult possiede i seguenti attributi che saranno di interesse ispezionando i risultati dell'esecuzione di una serie di test:

errors
Una lista contenente coppie di istanze TestCase e il traceback formattato dei test che sollevano un'eccezione, ma non segnalano il fallimento del test. Modificato nella versione 2.2: Contiene traceback formattate anziché il risultato di sys.exc_info().

failures
Una lista contenente coppie di istanze TestCase e il traceback formattato dei test che segnalano un fallimento del codice di test. Modificato nella versione 2.2: Contiene traceback formattate anziché il risultato di sys.exc_info().

testsRun
Il numero di test che sono stati avviati.

wasSuccessful( )
Restituisce vero se tutti i test eseguiti sino ad ora hanno avuto successo, altrimenti restituisce falso.

I seguenti metodi della classe TestResult vengono utilizzati per contenere le strutture dati interne e possono essere estesi in sotto classi per supportare ulteriori richieste di reportistica. Ciò torna particolarmente utile nella costruzione di tool che necessitino una reportistina interattiva durante l'esecuzione dei test.

startTest( test)
Chiamato quando il test case test sta essere lanciato.

stopTest( test)
Chiamato quando il test case test è stato eseguito, senza considerare il risultato.

addError( test, err)
Chiamato quando il test case test solleva un'eccezione senza segnalare il fallimento del test. err è una tupla nella forma restituita da sys.exc_info(): (type, value, traceback).

addFailure( test, err)
Chiamato quando il test case test segnala un fallimento. err è una tupla nella forma restituita da sys.exc_info(): (type, value, traceback).

addSuccess( test)
Questo metodo viene chiamato per un test che non fallisce; test è l'oggetto test case.

É disponibile un metodo aggiuntivo per gli oggetti TestResult:

stop( )
Questo metodo può essere invocato per segnalare che l'insieme dei test in corso dovrebbe essere interrotto. Una volta chiamato, l'oggetto TestRunner ritorna al chiamante senza eseguire nessun ulteriore test. Questo metodo viene utilizzato dalla classe TextTestRunner per interrompere l'ambiente di test quando l'utente segnala un'interruzione dalla tastiera. I tool interattivi che forniscono degli attivatori possono utilizzarlo in maniera simile.

Vedete Circa questo documento... per informazioni su modifiche e suggerimenti.