PythonUnitTestResultParser

public class PythonUnitTestResultParser
extends MultiLineReceiver

java.lang.Oggetto
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 s. L'output di questi test segue questa grammatica EBNF:

TestReport ::= TestResult* Line 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 integer \u201ctests in\u201d float \u201ds\u201d. Stato ::= \u201cOK\u201d | \u201cFAILED (errori=\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

-------------------------------------------------- -------------------- Hai eseguito 5 test in 0,002 secondi

OK

Output di esempio (fallito) test_size (test_rangelib.RangeSetTest) ... ERROR

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

Output di esempio con diversi casi limite (non riuscito): testError (foo.testFoo) ... ERROR testExpectedFailure (foo.testFoo) ... fallimento 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 ( la chiamata più recente last): File "foo.py", riga 11, in testError self.assertEqual(2+2, 5/0) ZeroDivisionError: divisione intera o modulo per zero

=================================================== ==================== FALLITO: testFail (foo.testFoo) ---------------------- ------------------------------------------------ Rintracciare ( ultima chiamata più recente): 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

-------------------------------------------------- -------------------- Ha eseguito 8 test in 0,001 secondi

FAILED (fallimenti=2, errori=1, ignorati=1, fallimenti previsti=1, successi imprevisti=1)

TODO: Prendi in considerazione il refactoring dell'intera classe, la gestione è piuttosto disordinata in questo momento.

Riepilogo

Costruttori pubblici

PythonUnitTestResultParser ( ITestInvocationListener listener, String runName)

Crea un nuovo PythonUnitTestResultParser che riporti al dato ITestInvocationListener .

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

Crea un nuovo PythonUnitTestResultParser che riporti ai dati ITestInvocationListener s.

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 riporti ai dati ITestInvocationListener s, 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 riporti al dato ITestInvocationListener .

Parametri
listener ITestInvocationListener

runName String

PythonUnitTestResultParser

public PythonUnitTestResultParser ( listeners, 
                String runName)

Crea un nuovo PythonUnitTestResultParser che riporti ai dati ITestInvocationListener s.

Parametri
listeners

runName String

PythonUnitTestResultParser

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

Crea un nuovo PythonUnitTestResultParser che riporti ai dati ITestInvocationListener s, 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 deve 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