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 ITestInvocationListener
s. 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(
Erstellen Sie eine neue |
|
PythonUnitTestResultParser(
Erstellen Sie eine neue |
Ö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 ITestInvocationListener
s untergeordnet ist.
Parameter | |
---|---|
listeners |
|
runName |
String |
PythonUnitTestResultParser
public PythonUnitTestResultParser (listeners, String runName, includeFilters, excludeFilters)
Erstellen Sie eine neue PythonUnitTestResultParser
, die Berichte zu den angegebenen ITestInvocationListener
s 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 |