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 , der an den angegebenen ITestInvocationListener berichtet.

PythonUnitTestResultParser ( listeners, String runName) PythonUnitTestResultParser ( listeners, String runName)

Erstellen Sie einen neuen PythonUnitTestResultParser , der an die angegebenen ITestInvocationListener s berichtet.

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 PythonUnitTestResultParser , der an die angegebenen ITestInvocationListener s berichtet, mit angegebenen Einschluss- und Ausschlussfiltern.

Ö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