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 (nieudany) 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

====================================================================== 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

---------------------------------------------------------------------- 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 jej obsługa jest dość nieuporządkowana.

Podsumowanie

Publiczne konstruktory

PythonUnitTestResultParser( listeners, String runName)

Utwórz nowego PythonUnitTestResultParser, który podlega podane ITestInvocationListener.

PythonUnitTestResultParser( listeners, String runName, includeFilters, excludeFilters)

Utwórz nowy PythonUnitTestResultParser, który będzie raportować do podanych ITestInvocationListener, z określonymi filtrami Uwzględnij i Wyklucz.

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)

Publiczne konstruktory

PythonUnitTestResultParser

public PythonUnitTestResultParser ( listeners, 
                String runName)

Utwórz nowego PythonUnitTestResultParser, który podlega podane ITestInvocationListener.

Parametry
listeners

runName String

PythonUnitTestResultParser

public PythonUnitTestResultParser ( listeners, 
                String runName, 
                 includeFilters, 
                 excludeFilters)

Utwórz nowy PythonUnitTestResultParser, który będzie raportować do podanych ITestInvocationListener, z określonymi filtrami Uwzględnij i Wyklucz.

Parametry
listeners

runName String

includeFilters

excludeFilters

Metody publiczne

finalizeParser

public void finalizeParser ()

isCancelled

public boolean isCancelled ()

Zwroty
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 tę metodę należy wywołać tylko raz z pełnym wynikiem.

Parametry
lines String: tablica zawierająca nowe wiersze.

setFinalizeWhenParsing

public void setFinalizeWhenParsing (boolean shouldFinalize)

Parametry
shouldFinalize boolean