PythonUnitTestResultParser
public class PythonUnitTestResultParser
extends MultiLineReceiver
java.lang.Object | ||
↳ | com.android.ddmlib.MultiLineReceiver | |
↳ | com.android.tradefed.testtype.PythonUnitTestResultParser |
ตีความผลลัพธ์ของการทดสอบที่รันด้วยเฟรมเวิร์ก unittest ของ Python และแปลเป็นการเรียกบนชุดของ ITestInvocationListener
ผลลัพธ์จากการทดสอบเหล่านี้เป็นไปตามไวยากรณ์ EBNF นี้:
TestReport ::= TestResult* สถานะ TimeMetric ของบรรทัด [FailMessage*] ผลการทดสอบ ::= string \u201c(\u201cstring\u201d)\u201d \u201c\u2026\u201d SingleStatus FailMessage ::= EqLine \u201cERROR:\u201d string \u201c(\u201cstring\u201d)\u201d Line Traceback Line สถานะโสด ::= \u201cok\u201d | \u201cข้อผิดพลาด\u201d. TimeMetric ::= \u201cRan\u201d จำนวนเต็ม \u201ctests ใน\u201d float \u201ds\u201d สถานะ ::= \u201cOK\u201d | \u201cFAILED (ข้อผิดพลาด=\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) ... ตกลง
-------------------------------------------------- -------------------------------------------------- -------------------- ทดสอบ 5 ครั้งใน 0.002 วินาที
ตกลง
ตัวอย่างเอาต์พุต (ล้มเหลว) test_size (test_rangelib.RangeSetTest) ... ข้อผิดพลาด
================================================== ==================== ข้อผิดพลาด: test_size (test_rangelib.RangeSetTest) ---------------------- ------------------------------------------------ ตรวจสอบย้อนกลับ ( การโทรล่าสุดครั้งล่าสุด): ไฟล์ "test_rangelib.py" บรรทัด 129 ใน test_rangelib เพิ่ม ValueError() ValueError --------------------------- ----------------------------------------------- การทดสอบรัน 1 ครั้งใน 0.001 วินาทีล้มเหลว (ข้อผิดพลาด=1)
ตัวอย่างเอาต์พุตที่มี Edge Case หลายรายการ (ล้มเหลว): testError (foo.testFoo) ... ข้อผิดพลาด testExpectedFailure (foo.testFoo) ... ความล้มเหลวที่คาดหวัง testFail (foo.testFoo) ... FAIL testFailWithDocString (foo.testFoo) foo bar .. ล้มเหลว testOk (foo.testFoo) ... ตกลง testOkWithDocString (foo.testFoo) foo bar ... ตกลง testSkipped (foo.testFoo) ... ข้าม 'เหตุผล foo' testUnexpectedSuccess (foo.testFoo) ... ความสำเร็จที่ไม่คาดคิด
================================================== ==================== ข้อผิดพลาด: testError (foo.testFoo) ---------------------- ------------------------------------------------ ตรวจสอบย้อนกลับ ( การโทรล่าสุดครั้งล่าสุด): ไฟล์ "foo.py" บรรทัด 11 ใน testError self.assertEqual(2+2, 5/0) ZeroDivisionError: การหารจำนวนเต็มหรือโมดูโลด้วยศูนย์
================================================== ==================== ล้มเหลว: testFail (foo.testFoo) ---------------------- ------------------------------------------------ ตรวจสอบย้อนกลับ ( การโทรล่าสุดครั้งล่าสุด): ไฟล์ "foo.py" บรรทัด 8 ใน testFail self.assertEqual(2+2, 5) AssertionError: 4 != 5
================================================== ==================== ล้มเหลว: testFailWithDocString (foo.testFoo) foo bar -------------------- -------------------------------------------------- -------------------------------------------------- Traceback (การโทรล่าสุดครั้งล่าสุด): ไฟล์ "foo.py" บรรทัด 31 ใน testFailWithDocString self.assertEqual(2+2, 5) AssertionError: 4 != 5
-------------------------------------------------- -------------------------------------------------- -------------------- ทดสอบวิ่ง 8 ครั้งใน 0.001 วินาที
ล้มเหลว (ความล้มเหลว=2, ข้อผิดพลาด=1, ข้าม=1, ความล้มเหลวที่คาดหวัง=1, ความสำเร็จที่ไม่คาดคิด=1)
สิ่งที่ต้องทำ: พิจารณาปรับโครงสร้างคลาสใหม่ทั้งหมด เนื่องจากตอนนี้การจัดการค่อนข้างยุ่งเหยิง
สรุป
ผู้รับเหมาก่อสร้างสาธารณะ | |
---|---|
PythonUnitTestResultParser ( ITestInvocationListener listener, String runName) สร้าง | |
PythonUnitTestResultParser ( listeners, String runName) PythonUnitTestResultParser ( listeners, String runName) สร้าง | |
PythonUnitTestResultParser ( listeners, String runName, includeFilters, excludeFilters) PythonUnitTestResultParser ( listeners, String runName, includeFilters, excludeFilters) PythonUnitTestResultParser ( listeners, String runName, includeFilters, excludeFilters) PythonUnitTestResultParser ( listeners, String runName, includeFilters, excludeFilters) สร้าง |
วิธีการสาธารณะ | |
---|---|
void | finalizeParser () |
boolean | isCancelled () |
void | processNewLines (String[] lines) ประมวลผลเอาต์พุต Unittest ของ Python และรายงานผลการแยกวิเคราะห์ |
void | setFinalizeWhenParsing (boolean shouldFinalize) |
ผู้รับเหมาก่อสร้างสาธารณะ
PythonUnitTestResultParser
public PythonUnitTestResultParser (ITestInvocationListener listener, String runName)
สร้าง PythonUnitTestResultParser
ใหม่ที่รายงานไปยัง ITestInvocationListener
ที่กำหนด
พารามิเตอร์ | |
---|---|
listener | ITestInvocationListener |
runName | String |
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 |
วิธีการสาธารณะ
จบ Parser
public void finalizeParser ()
ถูกยกเลิก
public boolean isCancelled ()
การส่งคืน | |
---|---|
boolean |
กระบวนการNewLines
public void processNewLines (String[] lines)
ประมวลผลเอาต์พุต Unittest ของ Python และรายงานผลการแยกวิเคราะห์
วิธีการนี้ควรถูกเรียกเพียงครั้งเดียวโดยมีเอาต์พุตเต็ม ซึ่งแตกต่างจากวิธีพื้นฐานใน MultiLineReceiver
พารามิเตอร์ | |
---|---|
lines | String |
setFinalizeWhenParsing
public void setFinalizeWhenParsing (boolean shouldFinalize)
พารามิเตอร์ | |
---|---|
shouldFinalize | boolean |