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 wurden, und übersetzt sie in Aufrufe
für eine 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
---------------------------------------------------------------------- Ran 5 tests in 0.002s
Ok
Beispielausgabe (fehlgeschlagen): test_size (test_rangelib.RangeSetTest) ... ERROR
====================================================================== ERROR: 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 Grenzfällen (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
====================================================================== ERROR: 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
FAILED (failures=2, errors=1, skipped=1, expected failures=1, unexpected successes=1)
TODO: Die gesamte Klasse sollte überarbeitet werden, da die aktuelle Verarbeitung recht unübersichtlich ist.
Zusammenfassung
Öffentliche Konstruktoren | |
|---|---|
PythonUnitTestResultParser(ITestInvocationListener listener, String runName)
Erstellt einen neuen |
|
PythonUnitTestResultParser(Collection<ITestInvocationListener> listeners, String runName)
Erstellt einen neuen |
|
PythonUnitTestResultParser(Collection<ITestInvocationListener> listeners, String runName, Set<String> includeFilters, Set<String> excludeFilters)
Erstellt einen neuen |
|
Öffentliche Methoden | |
|---|---|
void
|
finalizeParser()
|
boolean
|
isCancelled()
|
void
|
processNewLines(String[] lines)
Verarbeitet die Ausgabe von Python-Unit-Tests und meldet die geparsten Ergebnisse. |
void
|
setFinalizeWhenParsing(boolean shouldFinalize)
|
Öffentliche Konstruktoren
PythonUnitTestResultParser
public PythonUnitTestResultParser (ITestInvocationListener listener, String runName)
Erstellt einen neuen PythonUnitTestResultParser, der die Ergebnisse an den angegebenen ITestInvocationListener meldet.
| Parameter | |
|---|---|
listener |
ITestInvocationListener |
runName |
String |
PythonUnitTestResultParser
public PythonUnitTestResultParser (Collection<ITestInvocationListener> listeners, String runName)
Erstellt einen neuen PythonUnitTestResultParser, der die Ergebnisse an die angegebenen ITestInvocationListeners meldet.
| Parameter | |
|---|---|
listeners |
Collection |
runName |
String |
PythonUnitTestResultParser
public PythonUnitTestResultParser (Collection<ITestInvocationListener> listeners, String runName, Set<String> includeFilters, Set<String> excludeFilters)
Erstellt einen neuen PythonUnitTestResultParser, der die Ergebnisse an die angegebenen ITestInvocationListeners meldet und die angegebenen Ein- und Ausschlussfilter verwendet.
| Parameter | |
|---|---|
listeners |
Collection |
runName |
String |
includeFilters |
Set |
excludeFilters |
Set |
Öffentliche Methoden
finalizeParser
public void finalizeParser ()
isCancelled
public boolean isCancelled ()
| Gibt Folgendes zurück: | |
|---|---|
boolean |
|
processNewLines
public void processNewLines (String[] lines)
Verarbeitet die Ausgabe von Python-Unit-Tests und meldet die geparsten Ergebnisse.
Im Gegensatz zur Basismethode in
MultiLineReceiver sollte diese Methode nur einmal mit der vollständigen Ausgabe aufgerufen werden.
| Parameter | |
|---|---|
lines |
String: Das Array mit den neuen Zeilen. |
setFinalizeWhenParsing
public void setFinalizeWhenParsing (boolean shouldFinalize)
| Parameter | |
|---|---|
shouldFinalize |
boolean |