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 che generi report per il ITestInvocationListener specificato.

PythonUnitTestResultParser( listeners, String runName)

Crea un nuovo PythonUnitTestResultParser che generi report per i ITestInvocationListener specificati.

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.

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