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 ( listeners, String runName) PythonUnitTestResultParser ( listeners, String runName) Crea un nuovo | |
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 |
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 |