PythonUnitTestResultParser

public class PythonUnitTestResultParser
extends MultiLineReceiver

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


Python의 unittest 프레임워크로 실행된 테스트의 출력을 해석하고 일련의 ITestInvocationListener 호출로 변환합니다. 이러한 테스트의 출력은 다음 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 ::= \u201c실행\u201d 정수 \u201ctests in\u201d 부동 소수점 \u201ds\u201d. 상태 ::= \u201cOK\u201d | \u201c실패 (오류=\u201d int \u201c)\u201d. Traceback ::= string+.

출력 예시 (통과): 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

---------------------------------------------------------------------- 0.002초 만에 5개의 테스트를 실행했습니다.

확인

출력 예시 (실패) 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)

여러 특이 사례가 포함된 출력 예시 (실패): testError (foo.testFoo) ... ERROR testExpectedFailure (foo.testFoo) ... 예상된 실패 testFail (foo.testFoo) ... FAIL testFailWithDocString (foo.testFoo) foo bar ... FAIL testOk (foo.testFoo) ... ok testOkWithDocString (foo.testFoo) foo bar ... ok testSkipped (foo.testFoo) ... 건너뛴 '이유 foo' testUnexpectedSuccess (foo.testFoo) ... 예상치 못한 성공

====================================================================== 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 (가장 최근 호출 마지막): File "foo.py", line 31, in testFailWithDocString self.assertEqual(2+2, 5) AssertionError: 4 != 5

---------------------------------------------------------------------- 0.001초에 8개의 테스트를 실행했습니다.

실패 (실패=2, 오류=1, 건너뜁=1, 예상 실패=1, 예상치 못한 성공=1)

TODO: 전체 클래스를 리팩터링하는 것이 좋습니다. 현재 처리가 매우 지저분합니다.

요약

공개 생성자

PythonUnitTestResultParser( listeners, String runName)

지정된 ITestInvocationListener에 보고하는 새 PythonUnitTestResultParser를 만듭니다.

PythonUnitTestResultParser( listeners, String runName, includeFilters, excludeFilters)

지정된 포함 및 제외 필터와 함께 지정된 ITestInvocationListener에 보고하는 새 PythonUnitTestResultParser를 만듭니다.

공개 메서드

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

Python unittest 출력을 처리하고 파싱된 결과를 보고합니다.

void setFinalizeWhenParsing(boolean shouldFinalize)

공개 생성자

PythonUnitTestResultParser

public PythonUnitTestResultParser ( listeners, 
                String runName)

지정된 ITestInvocationListener에 보고하는 새 PythonUnitTestResultParser를 만듭니다.

매개변수
listeners

runName String

PythonUnitTestResultParser

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

지정된 포함 및 제외 필터와 함께 지정된 ITestInvocationListener에 보고하는 새 PythonUnitTestResultParser를 만듭니다.

매개변수
listeners

runName String

includeFilters

excludeFilters

공개 메서드

finalizeParser

public void finalizeParser ()

isCancelled

public boolean isCancelled ()

반환 값
boolean

processNewLines

public void processNewLines (String[] lines)

Python unittest 출력을 처리하고 파싱된 결과를 보고합니다.

이 메서드는 MultiLineReceiver의 기본 메서드와 달리 전체 출력과 함께 한 번만 호출해야 합니다.

매개변수
lines String

setFinalizeWhenParsing

public void setFinalizeWhenParsing (boolean shouldFinalize)

매개변수
shouldFinalize boolean