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(
지정된 |
|
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 |