Mantieni tutto organizzato con le raccolte Salva e classifica i contenuti in base alle tue preferenze.

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

TestReport ::= TestResult* Riga TimeMetric [FailMessage*] Stato. TestResult ::= stringa “(“stringa”)” “…” SingleStatus. FailMessage ::= EqLine “ERROR:” string “(“string”)” Line Traceback Line. SingleStatus ::= “ok” | "ERRORE". TimeMetric ::= Intero "Ran" "verifica in" float "s". Stato ::= “OK” | “FAILED (errori=” int “)”. Ritraccia ::= stringa+.

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

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

OK

Esempio di output (non riuscito) test_size (test_rangelib.RangeSetTest) ... ERRORE

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

Esempio di output con diversi edge case (non riuscito): testError (foo.testFoo) ... ERROR 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 ultima): 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 ultima): 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 s

FAILED (fallimenti=2, errori=1, ignorati=1, errori 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)

Creare un nuovo PythonUnitTestResultParser che riporti ITestInvocationListener specificato.

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

Creare un nuovo PythonUnitTestResultParser che riporti ITestInvocationListener specificato.

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

Creare un nuovo PythonUnitTestResultParser che riporti agli ITestInvocationListener specificati, con i filtri di inclusione ed esclusione specificati.

Metodi pubblici

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

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

void setFinalizeWhenParsing (boolean shouldFinalize)

Costruttori pubblici

PythonUnitTestResultParser

public PythonUnitTestResultParser (ITestInvocationListener listener, 
                String runName)

Creare un nuovo PythonUnitTestResultParser che riporti ITestInvocationListener specificato.

Parametri
listener ITestInvocationListener

runName String

PythonUnitTestResultParser

public PythonUnitTestResultParser ( listeners, 
                String runName)

Creare un nuovo PythonUnitTestResultParser che riporti ITestInvocationListener specificato.

Parametri
listeners

runName String

PythonUnitTestResultParser

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

Creare un nuovo PythonUnitTestResultParser che riporti agli 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 di 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