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 traduce in chiamate su una serie di ITestInvocationListener . L'output di questi test segue questa grammatica EBNF:

TestReport ::= TestResult* Linea TimeMetric [FailMessage*] Stato. TestResult ::= string \u201c(\u201cstring\u201d)\u201d \u201c\u2026\u201d SingleStatus. FailMessage ::= EqLine \u201cERROR:\u201d string \u201c(\u201cstring\u201d)\u201d Line Traceback Line. SingleStatus ::= \u201cok\u201d | \u201cERRORE\u201d. TimeMetric ::= \u201cRan\u201d intero \u201ctest in\u201d float \u201ds\u201d. Stato ::= \u201cOK\u201d | \u201cFAILED (errori=\u201d int \u201c)\u201d. Traceback ::= stringa+.

Esempio di output (passaggio): 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

-------------------------------------------------- -------------------- Ho eseguito 5 test in 0,002 s

OK

Output di esempio (non riuscito) test_size (test_rangelib.RangeSetTest) ... ERRORE

================================================== ==================== ERRORE: test_size (test_rangelib.RangeSetTest) ---------------------- ------------------------------------------------ Rintracciare ( chiamata più recente per ultima): File "test_rangelib.py", riga 129, in test_rangelib raise ValueError() ValueError --------------------------- ------------------------------------------- Eseguito 1 test in 0,001 s FALLITO (errori=1)

Esempio di output con diversi casi limite (non riuscito): testError (foo.testFoo) ... ERRORE testExpectedFailure (foo.testFoo) ... errore previsto testFail (foo.testFoo) ... FAIL testFailWithDocString (foo.testFoo) foo bar . .. FAIL testOk (foo.testFoo) ... ok testOkWithDocString (foo.testFoo) foo bar ... ok testSkipped (foo.testFoo) ... saltato 'reason foo' testUnexpectedSuccess (foo.testFoo) ... successo inaspettato

================================================== ==================== ERRORE: testError (foo.testFoo) ---------------------- ------------------------------------------------ Rintracciare ( chiamata più recente last): file "foo.py", riga 11, in testError self.assertEqual(2+2, 5/0) ZeroDivisionError: divisione intera o modulo per zero

================================================== ==================== FAIL: testFail (foo.testFoo) ---------------------- ------------------------------------------------ Rintracciare ( chiamata più recente last): File "foo.py", riga 8, in testFail self.assertEqual(2+2, 5) AssertionError: 4 != 5

================================================== ==================== FAIL: testFailWithDocString (foo.testFoo) foo bar -------------------- -------------------------------------------------- Traceback (ultima chiamata più recente): File "foo.py", riga 31, in testFailWithDocString self.assertEqual(2+2, 5) AssertionError: 4 != 5

-------------------------------------------------- -------------------- Ho eseguito 8 test in 0,001 s

FALLITO (fallimenti=2, errori=1, saltato=1, fallimenti previsti=1, successi imprevisti=1)

DA FARE: Considera la possibilità di refactoring dell'intera classe, la gestione è piuttosto complicata in questo momento.

Riepilogo

Costruttori pubblici

PythonUnitTestResultParser ( ITestInvocationListener listener, String runName)

Crea un nuovo PythonUnitTestResultParser che riporta al dato ITestInvocationListener .

PythonUnitTestResultParser ( listeners, String runName) PythonUnitTestResultParser ( listeners, String runName)

Crea un nuovo PythonUnitTestResultParser che riporta ai dati ITestInvocationListener .

PythonUnitTestResultParser ( listeners, String runName, includeFilters, excludeFilters) PythonUnitTestResultParser ( listeners, String runName, includeFilters, excludeFilters) PythonUnitTestResultParser ( listeners, String runName, includeFilters, excludeFilters) PythonUnitTestResultParser ( listeners, String runName, includeFilters, excludeFilters)

Crea un nuovo PythonUnitTestResultParser che segnala ai ITestInvocationListener specificati, con i filtri di inclusione ed esclusione specificati.

Metodi pubblici

void finalizeParser ()
boolean isCancelled ()
void processNewLines (String[] lines)

Elabora l'output unittest di Python e riporta i risultati analizzati.

void setFinalizeWhenParsing (boolean shouldFinalize)

Costruttori pubblici

PythonUnitTestResultParser

public PythonUnitTestResultParser (ITestInvocationListener listener, 
                String runName)

Crea un nuovo PythonUnitTestResultParser che riporta al dato ITestInvocationListener .

Parametri
listener ITestInvocationListener

runName String

PythonUnitTestResultParser

public PythonUnitTestResultParser ( listeners, 
                String runName)

Crea un nuovo PythonUnitTestResultParser che riporta ai dati ITestInvocationListener .

Parametri
listeners

runName String

PythonUnitTestResultParser

public PythonUnitTestResultParser ( listeners, 
                String runName, 
                 includeFilters, 
                 excludeFilters)

Crea un nuovo PythonUnitTestResultParser che segnala ai ITestInvocationListener specificati, con i filtri di inclusione ed esclusione specificati.

Parametri
listeners

runName String

includeFilters

excludeFilters

Metodi pubblici

finalizeParser

public void finalizeParser ()

èAnnullato

public boolean isCancelled ()

ritorna
boolean

processNewLines

public void processNewLines (String[] lines)

Elabora l'output unittest di Python e riporta i risultati analizzati.

Questo metodo dovrebbe essere chiamato solo una volta con l'output completo, a differenza del metodo di base in MultiLineReceiver .

Parametri
lines String

setFinalizeWhenParsing

public void setFinalizeWhenParsing (boolean shouldFinalize)

Parametri
shouldFinalize boolean