PythonUnitTestResultParser
public
class
PythonUnitTestResultParser
extends MultiLineReceiver
| java.lang.Object | ||
| ↳ | com.android.ddmlib.MultiLineReceiver | |
| ↳ | com.android.tradefed.testtype.PythonUnitTestResultParser | |
Interpretuje wyniki testów przeprowadzonych za pomocą platformy unittest w Pythonie i przekształca je w wywołania serii ITestInvocationListener. Wyniki tych testów są zgodne z tą gramatyką EBNF:
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+.
Przykładowe wyniki (pozytywne): 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
---------------------------------------------------------------------- Przeprowadzono 5 testów w 0,002 s
OK
Przykładowe dane wyjściowe (niepowodzenie) 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)
Przykładowe dane wyjściowe z kilkoma przypadkami brzegowymi (niepowodzenie): 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
====================================================================== BŁĄD: 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
---------------------------------------------------------------------- Przeprowadzono 8 testów w 0,001 s
NIEPOWODZENIE (failures=2, errors=1, skipped=1, expected failures=1, unexpected successes=1)
TODO: rozważ przekształcenie całej klasy, ponieważ obecnie obsługa jest dość nieuporządkowana.
Podsumowanie
Konstruktory publiczne | |
|---|---|
PythonUnitTestResultParser(ITestInvocationListener listener, String runName)
Utwórz nowy |
|
PythonUnitTestResultParser(Collection<ITestInvocationListener> listeners, String runName)
Utwórz nowy |
|
PythonUnitTestResultParser(Collection<ITestInvocationListener> listeners, String runName, Set<String> includeFilters, Set<String> excludeFilters)
Utwórz nowy |
|
Metody publiczne | |
|---|---|
void
|
finalizeParser()
|
boolean
|
isCancelled()
|
void
|
processNewLines(String[] lines)
Przetwarzanie danych wyjściowych testów jednostkowych w Pythonie i raportowanie przeanalizowanych wyników. |
void
|
setFinalizeWhenParsing(boolean shouldFinalize)
|
Konstruktory publiczne
PythonUnitTestResultParser
public PythonUnitTestResultParser (ITestInvocationListener listener, String runName)
Utwórz nowy PythonUnitTestResultParser, który podlega podany ITestInvocationListener.
| Parametry | |
|---|---|
listener |
ITestInvocationListener |
runName |
String |
PythonUnitTestResultParser
public PythonUnitTestResultParser (Collection<ITestInvocationListener> listeners, String runName)
Utwórz nowy PythonUnitTestResultParser, który będzie raportować do podanych ITestInvocationListener.
| Parametry | |
|---|---|
listeners |
Collection |
runName |
String |
PythonUnitTestResultParser
public PythonUnitTestResultParser (Collection<ITestInvocationListener> listeners, String runName, Set<String> includeFilters, Set<String> excludeFilters)
Utwórz nowy PythonUnitTestResultParser, który będzie raportować do podanych ITestInvocationListener, z określonymi filtrami uwzględniania i wykluczania.
| Parametry | |
|---|---|
listeners |
Collection |
runName |
String |
includeFilters |
Set |
excludeFilters |
Set |
Metody publiczne
finalizeParser
public void finalizeParser ()
isCancelled
public boolean isCancelled ()
| Zwraca | |
|---|---|
boolean |
|
processNewLines
public void processNewLines (String[] lines)
Przetwarzanie danych wyjściowych testów jednostkowych w Pythonie i raportowanie przeanalizowanych wyników.
W przeciwieństwie do metody podstawowej w MultiLineReceiver ta metoda powinna być wywoływana tylko raz z pełnym wynikiem.
| Parametry | |
|---|---|
lines |
String: tablica zawierająca nowe wiersze. |
setFinalizeWhenParsing
public void setFinalizeWhenParsing (boolean shouldFinalize)
| Parametry | |
|---|---|
shouldFinalize |
boolean |