PythonUnitTestResultParser

public class PythonUnitTestResultParser
extends MultiLineReceiver

java.lang.Object
   ↳ com.android.ddmlib.MultiLineReceiver
     ↳ com.android.tradefed.testtype.PythonUnitTestResultParser


Interpretiert die Ausgabe von Tests, die mit dem unittest-Framework von Python ausgeführt werden, und übersetzt sie in Aufrufe einer Reihe von ITestInvocationListeners. Die Ausgabe dieser Tests folgt dieser EBNF-Grammatik:

TestReport ::= TestResult* Line TimeMetric [FailMessage*] Status. 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 | \u201cERROR\u201d. TimeMetric ::= \u201cRan\u201d integer \u201ctests in\u201d float \u201ds\u201d. Status ::= \u201cOK\u201d | \u201cFAILED (errors=\u201d int \u201c)\u201d. Traceback ::= string+.

Beispielausgabe (bestanden): 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

---------------------------------------------------------------------- Ran 5 tests in 0.002s

Ok

Beispielausgabe (fehlgeschlagen): test_size (test_rangelib.RangeSetTest) … ERROR

===================================================================== FEHLER: test_size (test_rangelib.RangeSetTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "test_rangelib.py", line 129, in test_rangelib raise ValueError() ValueError ---------------------------------------------------------------------- Ran 1 test in 0.001s FAILED (errors=1)

Beispielausgabe mit mehreren Grenzbedingungen (fehlgeschlagen): testError (foo.testFoo) ... ERROR testExpectedFailure (foo.testFoo) ... expected failure testFail (foo.testFoo) ... FAIL testFailWithDocString (foo.testFoo) foo bar ... FAIL testOk (foo.testFoo) ... ok testOkWithDocString (foo.testFoo) foo bar ... ok testSkipped (foo.testFoo) ... skipped 'reason foo' testUnexpectedSuccess (foo.testFoo) ... unexpected success

===================================================================== FEHLER: testError (foo.testFoo) ---------------------------------------------------------------------- Traceback (most recent call last): File "foo.py", line 11, in testError self.assertEqual(2+2, 5/0) ZeroDivisionError: integer division or modulo by zero

====================================================================== FAIL: testFail (foo.testFoo) ---------------------------------------------------------------------- Traceback (most recent call last): File "foo.py", line 8, in testFail self.assertEqual(2+2, 5) AssertionError: 4 != 5

===================================================================== FAIL: testFailWithDocString (foo.testFoo) foo bar ---------------------------------------------------------------------- Traceback (most recent call last): File "foo.py", line 31, in testFailWithDocString self.assertEqual(2+2, 5) AssertionError: 4 != 5

---------------------------------------------------------------------- Ran 8 tests in 0.001s

FEHLGESCHLAGEN (Fehler=2, Fehler=1, übersprungen=1, erwartete Fehler=1, unerwartete Erfolge=1)

TODO: Consider refactoring the full class, handling is quite messy right now.

Zusammenfassung

Öffentliche Konstruktoren

PythonUnitTestResultParser( listeners, String runName)

Erstellen Sie eine neue PythonUnitTestResultParser, die den angegebenen ITestInvocationListeners unterstellt ist.

PythonUnitTestResultParser( listeners, String runName, includeFilters, excludeFilters)

Erstellt eine neue PythonUnitTestResultParser, die Berichte an die angegebenen ITestInvocationListeners sendet, mit den angegebenen Ein- und Ausschlussfiltern.

Öffentliche Methoden

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

Verarbeitet die Ausgabe von Python-Unittests und meldet die geparsten Ergebnisse.

void setFinalizeWhenParsing(boolean shouldFinalize)

Öffentliche Konstruktoren

PythonUnitTestResultParser

public PythonUnitTestResultParser ( listeners, 
                String runName)

Erstellen Sie eine neue PythonUnitTestResultParser, die den angegebenen ITestInvocationListeners unterstellt ist.

Parameter
listeners

runName String

PythonUnitTestResultParser

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

Erstellt eine neue PythonUnitTestResultParser, die Berichte an die angegebenen ITestInvocationListeners sendet, mit den angegebenen Ein- und Ausschlussfiltern.

Parameter
listeners

runName String

includeFilters

excludeFilters

Öffentliche Methoden

finalizeParser

public void finalizeParser ()

isCancelled

public boolean isCancelled ()

Returns
boolean

processNewLines

public void processNewLines (String[] lines)

Verarbeitet die Ausgabe von Python-Unittests und meldet die geparsten Ergebnisse.

Diese Methode sollte nur einmal mit der vollständigen Ausgabe aufgerufen werden, im Gegensatz zur Basismethode in MultiLineReceiver.

Parameter
lines String: Das Array mit den neuen Zeilen.

setFinalizeWhenParsing

public void setFinalizeWhenParsing (boolean shouldFinalize)

Parameter
shouldFinalize boolean