PythonUnitTestResultParser

public class PythonUnitTestResultParser
extends MultiLineReceiver

java.lang.Object
   ↳ com.android.ddmlib.MultiLineReceiver
     ↳ com.android.tradefed.testtype.PythonUnitTestResultParser


Interpretuje dane wyjściowe testów przeprowadzonych za pomocą modułu unittest w Pythonie i przekształca je w wywołania dotyczące 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. Stan ::= \u201cOK\u201d | \u201cFAILED (errors=\u201d int \u201c)\u201d. traceback ::= string+.

Przykładowy wynik (pozytywny): 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

---------------------------------------------------------------------- Przetestowano 5 testów w 0,002 s

OK

Przykładowy wynik (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 szczególnymi (niepowodzenie): testError (foo.testFoo)… ERROR testExpectedFailure (foo.testFoo)… oczekiwane niepowodzenie testFail (foo.testFoo)… niepowodzenie testFailWithDocString (foo.testFoo) foo bar… niepowodzenie testOk (foo.testFoo)… ok testOkWithDocString (foo.testFoo) foo bar… ok testSkipped (foo.testFoo)… pominięcie 'reason foo' testUnexpectedSuccess (foo.testFoo)… nieoczekiwany sukces

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

---------------------------------------------------------------------- Przetestowano 8 testów w 0,001 s

NIEPOWODNIE (nieudane próby=2, błędy=1, pominięcia=1, oczekiwane niepowodzenia=1, nieoczekiwane powodzenia=1)

TODO: rozważ przeformowanie całej klasy, ponieważ obecnie obsługa jest dość niechlujna

Podsumowanie

Konstruktory publiczne

PythonUnitTestResultParser( listeners, String runName)

Utwórz nową PythonUnitTestResultParser, która przesyła dane do podanych ITestInvocationListener.

PythonUnitTestResultParser( listeners, String runName, includeFilters, excludeFilters)

Utwórz nowy element PythonUnitTestResultParser, który będzie raportował dane do podanych elementów ITestInvocationListener, z uwzględnieniem określonych filtrów uwzględniania i wykluczania.

Metody publiczne

void finalizeParser()
boolean isCancelled()
void processNewLines(String[] lines)

Przetwarzanie danych wyjściowych z testów Pythona i zgłaszanie wyników zanalizowanych danych.

void setFinalizeWhenParsing(boolean shouldFinalize)

Konstruktory publiczne

PythonUnitTestResultParser

public PythonUnitTestResultParser ( listeners, 
                String runName)

Utwórz nową PythonUnitTestResultParser, która przesyła dane do podanych ITestInvocationListener.

Parametry
listeners

runName String

PythonUnitTestResultParser

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

Utwórz nowy element PythonUnitTestResultParser, który będzie raportował dane do podanych elementów ITestInvocationListener, z uwzględnieniem określonych filtrów uwzględniania i wykluczania.

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 z testów Pythona i zgłaszanie wyników zanalizowanych danych.

W przeciwieństwie do metody podstawowej w MultiLineReceiver ta metoda powinna być wywoływana tylko raz z pełnym wynikiem.

Parametry
lines String

setFinalizeWhenParsing

public void setFinalizeWhenParsing (boolean shouldFinalize)

Parametry
shouldFinalize boolean