PythonUnitTestResultParser
public
class
PythonUnitTestResultParser
extends MultiLineReceiver
java.lang.Object | ||
🎞 | com.android.ddmlib.MultiLineReceiver | |
🎞 | com.android.tradefed.testtype.PythonUnitTestResultParser |
Interpreta l'output dei test eseguiti con il framework unittest di Python e lo converte in chiamate
in una serie di ITestInvocationListener
. L'output di questi test segue questo EBNF
grammatica:
TestReport ::= TestResult* Line TimeMetric [FailMessage*] Stato. Stringa TestResult ::= \u201c(\u201cstring\u201d)\u201d \u201c\u2026\u201d Stato Singolo. FailMessage ::= EqLine \u201cERROR:\u201d stringa \u201c(\u201cstring\u201d)\u201d Traccia riga A riga di comando. SingleStatus ::= \u201cok\u201d | \u201cERRORE\u201d. Metrica temporale ::= \u201cRan\u201d numero intero \u201ctest in\u201d numero in virgola mobile \u201ds\u201d. Stato ::= \u201cOK\u201d | \u201cNON RIUSCITA (errors=\u201d int \u201c)\u201d. Traceback ::= stringa+.
Output di esempio (superamento): test_size (test_rangelib.RangeSetTest) ... ok test_str (test_rangelib.RangeSetTest) ... ok test_subtract (test_rangelib.RangeSetTest) ... ok test_to_string_raw (test_rangelib.RangeSetTest) ... ok test_union (test_rangelib.RangeSetTest) ... ok
---------------------------------------------------------------------- Eseguito 5 test in 0,002 s
OK
Output di esempio (non riuscito) test_size (test_rangelib.RangeSetTest) ... ERROR
===================================================================== ERRORE: test_size (test_rangelib.RangeSetTest) ---------------------------------------------------------------------- Traceback (più recente) call last): File "test_rangelib.py", riga 129, in test_rangelib remove ValueError() ValueError ---------------------------------------------------------------------- Eseguito 1 test in 0,001 s NON RIUSCITA (errors=1)
Output di esempio con diversi casi limite (non riuscito): testError (foo.testFoo) ... ERROR testPrevistoFailure (foo.testFoo) ... errore previsto testFail (foo.testFoo) ... FAIL testFailWithDocString (foo.testFoo) foo bar ... FAIL testOk (foo.testFoo) ... ok testOkWithDocString (foo.testFoo) foo bar ... ok testIgnorato (foo.testFoo) ... motivo ignorato foo testUnexpectedSuccess (foo.testFoo) ... operazione riuscita inaspettata
===================================================================== ERRORE: testError (foo.testFoo) ---------------------------------------------------------------------- Traceback (ultimo richiamo più recente): File "foo.py", riga 11, in testError self.assertEqual(2+2, 5/0) ZeroDivisionError: divisione di un numero intero o modulo per zero
===================================================================== ERRORE: testFail (foo.testFoo) ---------------------------------------------------------------------- Traceback (ultimo richiamo più recente): file "foo.py", riga 8, in testFail self.assertEqual(2+2, 5) AssertionError: 4 != 5
==================================================================== ERRORE: barra foo testFailWithDocString (foo.testFoo) ---------------------------------------------------------------------- Traceback (più recente) chiama last): File "foo.py", riga 31, in testFailWithDocString self.assertEqual(2+2, 5) AssertionError: 4 != 5
---------------------------------------------------------------------- Eseguito 8 test in 0,001 s
NON RIUSCITA (errori=2, errori=1, saltati=1, errori previsti=1, successi imprevisti=1)
DA FARE: valuta la possibilità di eseguire il refactoring dell'intera classe, la gestione al momento è piuttosto disordinata.
Riepilogo
Costruttori pubblici | |
---|---|
PythonUnitTestResultParser(ITestInvocationListener listener, String runName)
Crea un nuovo |
|
PythonUnitTestResultParser(
Crea un nuovo |
|
PythonUnitTestResultParser(
Crea un nuovo |
Metodi pubblici | |
---|---|
void
|
finalizeParser()
|
boolean
|
isCancelled()
|
void
|
processNewLines(String[] lines)
Elabora l'output del test unittest Python e segnala i risultati analizzati. |
void
|
setFinalizeWhenParsing(boolean shouldFinalize)
|
Costruttori pubblici
PythonUnitTestResultParser
public PythonUnitTestResultParser (ITestInvocationListener listener, String runName)
Crea un nuovo PythonUnitTestResultParser
che generi report per il ITestInvocationListener
specificato.
Parametri | |
---|---|
listener |
ITestInvocationListener |
runName |
String |
PythonUnitTestResultParser
public PythonUnitTestResultParser (listeners, String runName)
Crea un nuovo PythonUnitTestResultParser
che generi report per i ITestInvocationListener
specificati.
Parametri | |
---|---|
listeners |
|
runName |
String |
PythonUnitTestResultParser
public PythonUnitTestResultParser (listeners, String runName, includeFilters, excludeFilters)
Crea un nuovo PythonUnitTestResultParser
che generi report per i ITestInvocationListener
specificati, con i filtri di inclusione ed esclusione specificati.
Parametri | |
---|---|
listeners |
|
runName |
String |
includeFilters |
|
excludeFilters |
|
Metodi pubblici
analisi finale
public void finalizeParser ()
èAnnullato
public boolean isCancelled ()
Ritorni | |
---|---|
boolean |
processNewLines
public void processNewLines (String[] lines)
Elabora l'output del test unittest Python e segnala i risultati analizzati.
Questo metodo deve essere chiamato una sola volta con l'output completo, a differenza del metodo base in
MultiLineReceiver
.
Parametri | |
---|---|
lines |
String |
setFinalizeWhenParsing
public void setFinalizeWhenParsing (boolean shouldFinalize)
Parametri | |
---|---|
shouldFinalize |
boolean |