PythonUnitTestResultParser
public
class
PythonUnitTestResultParser
extends MultiLineReceiver
java.lang.Object | ||
↳ | com.android.ddmlib.MultiLineReceiver | |
↳ | com.android.tradefed.testtype.PythonUnitTestResultParser |
ตีความเอาต์พุตของการทดสอบที่เรียกใช้กับเฟรมเวิร์ก unittest ของ Python และแปลเป็นคําเรียกใช้ 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จำนวนเต็ม\u201dใน\u201dจำนวนทศนิยม\u201d\u201d สถานะ ::= \u201cOK\u201d | \u201cFAILED (errors=\u201d int \u201c)\u201d การแสดงผลย้อนกลับ ::= 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
---------------------------------------------------------------------- ทำการทดสอบ 5 รายการใน 0.002 วินาที
ตกลง
ตัวอย่างเอาต์พุต (ไม่สําเร็จ) 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
---------------------------------------------------------------------- ทำการทดสอบ 8 รายการใน 0.001 วินาที
ล้มเหลว (จำนวนครั้งที่ล้มเหลว=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)
สร้าง PythonUnitTestResultParser
ใหม่ซึ่งรายงานไปยัง ITestInvocationListener
ที่ระบุ
พารามิเตอร์ | |
---|---|
listeners |
|
runName |
String |
PythonUnitTestResultParser
public PythonUnitTestResultParser (listeners, String runName, includeFilters, excludeFilters)
สร้าง PythonUnitTestResultParser
ใหม่ซึ่งรายงานไปยัง ITestInvocationListener
ที่ระบุ โดยมีตัวกรองรวมและยกเว้นที่ระบุ
พารามิเตอร์ | |
---|---|
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 |