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 für eine 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 | \u201cFEHLER\u201d. TimeMetric ::= \u201cRan\u201d integer \u201ctests in\u201d float \u201ds\u201d. Status ::= \u201eOK\u201d | \u201eFEHLGESCHLAGEN (errors=\u201d int \u201c)\u201d. Rückverfolgung ::= Zeichenkette+.
Beispielausgabe (Passing): 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 s durchgeführt
OK
Beispielausgabe (fehlgeschlagen) test_size (test_rangelib.RangeSetTest) ... ERROR
=============================================== ==================== FEHLER: test_size (test_rangelib.RangeSetTest) ---------------------- ------------------------------------------------ Zurück verfolgen ( letzter Aufruf zuletzt): Datei "test_rangelib.py", Zeile 129, in test_rangelib raise ValueError() ValueError ---------------------- ------------------------------------------- 1 Test in 0,001 s ausgeführt FEHLGESCHLAGEN (Fehler=1)
Beispielausgabe mit mehreren Grenzfällen (fehlgeschlagen): testError (foo.testFoo) ... ERROR 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) ... 'reason foo' übersprungen testUnexpectedSuccess (foo.testFoo) ... unerwarteter Erfolg
=============================================== ==================== FEHLER: testError (foo.testFoo) ---------------------- ------------------------------------------------ Zurück verfolgen ( letzter Aufruf zuletzt): Datei "foo.py", Zeile 11, in testError self.assertEqual(2+2, 5/0) ZeroDivisionError: ganzzahlige Division oder Modulo durch Null
=============================================== ==================== FEHLGESCHLAGEN: testFail (foo.testFoo) ---------------------- ------------------------------------------------ Zurück verfolgen ( letzter Aufruf zuletzt): Datei "foo.py", Zeile 8, in testFail self.assertEqual(2+2, 5) AssertionError: 4 != 5
=============================================== ==================== FEHLGESCHLAGEN: testFailWithDocString (foo.testFoo) foo bar -------------------- -------------------------------------------------- Traceback (letzter Aufruf zuletzt): Datei "foo.py", Zeile 31, in testFailWithDocString self.assertEqual(2+2, 5) AssertionError: 4 != 5
-------------------------------------------------- -------------------- 8 Tests in 0,001 s durchgeführt
FEHLGESCHLAGEN (Fehler=2, Fehler=1, übersprungen=1, erwartete Fehler=1, unerwartete Erfolge=1)
TODO: Erwägen Sie ein Refactoring der gesamten Klasse, die Handhabung ist im Moment ziemlich chaotisch.
Zusammenfassung
Öffentliche Konstrukteure | |
---|---|
PythonUnitTestResultParser ( ITestInvocationListener listener, String runName) Erstellen Sie einen neuen | |
PythonUnitTestResultParser ( listeners, String runName) PythonUnitTestResultParser ( listeners, String runName) Erstellen Sie einen neuen | |
PythonUnitTestResultParser ( listeners, String runName, includeFilters, excludeFilters) PythonUnitTestResultParser ( listeners, String runName, includeFilters, excludeFilters) PythonUnitTestResultParser ( listeners, String runName, includeFilters, excludeFilters) PythonUnitTestResultParser ( listeners, String runName, includeFilters, excludeFilters) Erstellen Sie einen neuen |
Öffentliche Methoden | |
---|---|
void | finalizeParser () |
boolean | isCancelled () |
void | processNewLines (String[] lines) Verarbeiten Sie die Python-Unittest-Ausgabe und melden Sie geparste Ergebnisse. |
void | setFinalizeWhenParsing (boolean shouldFinalize) |
Öffentliche Konstrukteure
PythonUnitTestResultParser
public PythonUnitTestResultParser (ITestInvocationListener listener, String runName)
Erstellen Sie einen neuen PythonUnitTestResultParser
, der an den angegebenen ITestInvocationListener
berichtet.
Parameter | |
---|---|
listener | ITestInvocationListener |
runName | String |
PythonUnitTestResultParser
public PythonUnitTestResultParser (listeners, String runName)
Erstellen Sie einen neuen PythonUnitTestResultParser
, der an die angegebenen ITestInvocationListener
s berichtet.
Parameter | |
---|---|
listeners | |
runName | String |
PythonUnitTestResultParser
public PythonUnitTestResultParser (listeners, String runName, includeFilters, excludeFilters)
Erstellen Sie einen neuen PythonUnitTestResultParser
, der an die angegebenen ITestInvocationListener
s berichtet, mit angegebenen Einschluss- und Ausschlussfiltern.
Parameter | |
---|---|
listeners | |
runName | String |
includeFilters | |
excludeFilters |
Öffentliche Methoden
finalizeParser
public void finalizeParser ()
ist storniert
public boolean isCancelled ()
Kehrt zurück | |
---|---|
boolean |
ProcessNewLines
public void processNewLines (String[] lines)
Verarbeiten Sie die Python-Unittest-Ausgabe und melden Sie geparste Ergebnisse.
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 |