PythonUnitTestResultParser

public class PythonUnitTestResultParser
extends MultiLineReceiver

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


Er interpretiert die Ausgabe von Tests, die mit dem unittest-Framework von Python ausgeführt wurden, 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 (erfolgreich): 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

---------------------------------------------------------------------- 5 Tests in 0,002 Sekunden ausgeführt

Ok

Beispielausgabe (Fehlgeschlagen) test_size (test_rangelib.RangeSetTest) ... ERROR

====================================================================== FEHLER: test_size (test_rangelib.RangeSetTest) ---------------------------------------------------------------------- Traceback (letzter Aufruf zuerst): Datei „test_rangelib.py“, Zeile 129, in test_rangelib raise ValueError() ValueError ---------------------------------------------------------------------- 1 Test in 0,001 Sekunden ausgeführt FAILED (errors=1)

Beispielausgabe mit mehreren Grenzfällen (Fehlgeschlagen): testError (foo.testFoo) ... FEHLER testExpectedFailure (foo.testFoo) ... erwarteter Fehler testFail (foo.testFoo) ... FAIL testFailWithDocString (foo.testFoo) foo bar ... FAIL testOk (foo.testFoo) ... ok testOkWithDocString (foo.testFoo) foo bar ... ok testSkipped (foo.testFoo) ... übersprungen 'Grund foo' testUnexpectedSuccess (foo.testFoo) ... unerwarteter Erfolg

====================================================================== FEHLER: testError (foo.testFoo) ---------------------------------------------------------------------- Ablaufverfolgung (letzter Aufruf zuerst): Datei „foo.py“, Zeile 11, in testError self.assertEqual(2+2, 5/0) ZeroDivisionError: Ganzzahldivision oder Modulo mit Null

====================================================================== 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

---------------------------------------------------------------------- 8 Tests in 0,001 Sekunden ausgeführt

FAILED (failures=2, errors=1, skipped=1, expected failures=1, unexpected successes=1)

TODO: Überlegen Sie, die gesamte Klasse zu überarbeiten, da die Handhabung derzeit ziemlich unübersichtlich ist.

Zusammenfassung

Öffentliche Konstruktoren

PythonUnitTestResultParser( listeners, String runName)

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

PythonUnitTestResultParser( listeners, String runName, includeFilters, excludeFilters)

Erstellen Sie eine neue PythonUnitTestResultParser, die Berichte zu den angegebenen ITestInvocationListeners mit den angegebenen Ein- und Ausschlussfiltern erstellt.

Öffentliche Methoden

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

Python-Unittest-Ausgabe verarbeiten und geparste Ergebnisse melden

void setFinalizeWhenParsing(boolean shouldFinalize)

Öffentliche Konstruktoren

PythonUnitTestResultParser

public PythonUnitTestResultParser ( listeners, 
                String runName)

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

Parameter
listeners

runName String

PythonUnitTestResultParser

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

Erstellen Sie eine neue PythonUnitTestResultParser, die Berichte zu den angegebenen ITestInvocationListeners mit den angegebenen Ein- und Ausschlussfiltern erstellt.

Parameter
listeners

runName String

includeFilters

excludeFilters

Öffentliche Methoden

finalizeParser

public void finalizeParser ()

isCancelled

public boolean isCancelled ()

Returns
boolean

processNewLines

public void processNewLines (String[] lines)

Python-Unittest-Ausgabe verarbeiten und geparste Ergebnisse melden

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

Parameter
lines String

setFinalizeWhenParsing

public void setFinalizeWhenParsing (boolean shouldFinalize)

Parameter
shouldFinalize boolean