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 ::= \u201cRan\u201d integer \u201ctests in\u201d float \u201ds\u201d. Status ::= \u201cOK\u201d | \u201cFAILED (errors=\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) ... 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
---------------------------------------------------------------------- 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 |