Framework UnitTest - Gestione del segnale

Una gestione più efficiente di control-C durante un'esecuzione di test è fornita dall'opzione della riga di comando -c / - catch per unittest, insieme al catchbreakparametro. Con il comportamento di interruzione di cattura abilitato, control-C consentirà il completamento del test attualmente in esecuzione e l'esecuzione del test terminerà e riporterà tutti i risultati fino a quel momento. Un secondo control-c solleverà un KeyboardInterrupt nel solito modo.

Se viene chiamato il gestore unittest ma il gestore signal.SIGINT non è installato, allora chiama il gestore predefinito. Questo sarà normalmente il comportamento previsto dal codice che sostituisce un gestore installato e lo delega. Per i singoli test che richiedono una gestione unittest control-c disabilitata, è possibile utilizzare il decoratore removeHandler ().

Le seguenti funzioni di utilità abilitano la funzionalità di gestione control-c all'interno di framework di test:

unittest.installHandler ()

Installa il gestore control-c. Quando unsignal.SIGINT viene ricevuto tutti i risultati registrati hanno chiamato TestResult.stop ().

unittest.registerResult (risultato)

Registrati a TestResultoggetto per la manipolazione control-c. La registrazione di un risultato memorizza un riferimento debole ad esso, quindi non impedisce che il risultato venga raccolto dalla spazzatura.

unittest.removeResult (risultato)

Rimuovi un risultato registrato. Una volta che un risultato è stato rimosso, TestResult.stop () non verrà più chiamato su quell'oggetto risultato in risposta a un control-c.

unittest.removeHandler (function = None)

Quando viene chiamata senza argomenti, questa funzione rimuove il gestore control-c se è stato installato. Questa funzione può essere utilizzata anche come decoratore di test per rimuovere temporaneamente il gestore durante l'esecuzione del test.

GUI Test Runner

Il modulo unittest viene installato per scoprire ed eseguire i test in modo interattivo. Questa utility, uno script Python "inittestgui.py", utilizza il modulo Tkinter che è una porta Python per il kit di strumenti grafici TK. Fornisce una GUI facile da usare per la scoperta e l'esecuzione di test.

Python unittestgui.py

Fare clic sul pulsante "Scopri test". Viene visualizzata una piccola finestra di dialogo in cui è possibile selezionare la directory e i moduli da cui eseguire il test.

Infine, fai clic sul pulsante di avvio. I test verranno rilevati dal percorso selezionato e dai nomi dei moduli e il riquadro dei risultati visualizzerà i risultati.

Per vedere i dettagli del singolo test, selezionare e fare clic su test nella casella dei risultati -

Se non trovi questa utility nell'installazione di Python, puoi ottenerla dalla pagina del progetto http://pyunit.sourceforge.net/.

È disponibile anche un'utilità simile basata sul toolkit wxpython.