PythonUnitTestResultParser

public class PythonUnitTestResultParser
extends MultiLineReceiver

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


ตีความเอาต์พุตของการทดสอบที่ดำเนินการด้วยเฟรมเวิร์ก Unittest ของ Python และแปลค่าเป็นการเรียกใช้ ในชุด ITestInvocationListener วินาที ผลที่ได้จากการทดสอบเหล่านี้เป็นไปตาม EBNF นี้ ไวยากรณ์:

สถานะ TestReport ::= Testผลลัพธ์* Line TimeMetric [FailMessage*] ผลการทดสอบ ::= string \u201c(\u201cstring\u201d)\u201d \u201c\u2026\u201d SingleStatus FailMessage ::= EqLine \u201cERROR:\u201d string \u201c(\u201cstring\u201d)\u201d Line Traceback บรรทัด SingleStatus ::= \u201cok\u201d | \u201cERROR\u201d TimeMetric ::= \u201cRan\u201d จำนวนเต็ม \u201c ทดสอบในจำนวนลอยตัว \u201ds\u201d สถานะ ::= \u201cOK\u201d | \u201cFAILED (ข้อผิดพลาด=\u201d int \u201c)\u201d Traceback ::= string+

ตัวอย่างเอาต์พุต (ส่งผ่าน): test_size (test_rangelib.RangeSetTest) ... ok test_str (test_rangelib.RangeSetTest) ... ok test_subtract (test_rangelib.RangeSetTest) ... ตกลง test_to_string_raw (test_rangelib.RangeSetTest) ... ตกลง test_union (test_rangelib.RangeSetTest) ... ตกลง

---------------------------------------------------------------------- ทำการทดสอบ 5 ครั้งใน 0.002 วินาที

ตกลง

ตัวอย่างเอาต์พุต (ล้มเหลว) test_size (test_rangelib.RangeSetTest) ... ERROR

====================================================================== ข้อผิดพลาด: test_size (test_rangelib.RangeSetTest) ---------------------------------------------------------------------- Traceback (ล่าสุด) เรียกล่าสุด): ไฟล์ "test_rangelib.py" บรรทัดที่ 129 ใน test_rangelibRaise ValueError() ValueError ---------------------------------------------------------------------- ทำการทดสอบ 1 ครั้งใน 0.001 วินาที ไม่สำเร็จ (ข้อผิดพลาด=1)

ตัวอย่างเอาต์พุตที่มี Edge Case หลายรายการ (ล้มเหลว): testError (foo.testFoo) ... ERROR testPrepareFailure (foo.testFoo) ... ความล้มเหลวที่คาดไว้ testFail (foo.testFoo) ... ไม่ผ่าน testFailWithDocString (foo.testFoo) foo bar ... การทดสอบไม่ผ่าน (foo.testFoo) ... ตกลง testOkWithDocString (foo.testFoo) foo bar ... ตกลง testข้าม (foo.testFoo) ... ข้าม 'reason ฟู testUnexpectedSuccess (foo.testFoo) ... ความสำเร็จที่ไม่คาดคิด

====================================================================== ข้อผิดพลาด: ทดสอบ (foo.testFoo) --------------------------------------------------------------------- Traceback (เรียกล่าสุด): ไฟล์ "foo.py" บรรทัดที่ 11 ใน testError self.assertEqual(2+2, 5/0) ZeroDivisionError: การหารจำนวนเต็มหรือมอดูโลด้วย 0

====================================================================== ไม่ผ่าน: testFail (foo.testFoo) --------------------------------------------------------------------- Traceback (การเรียกล่าสุด): ไฟล์ "foo.py" บรรทัดที่ 8 ใน testFail self.assertEqual(2+2, 5) ข้อผิดพลาดเกี่ยวกับการยืนยัน: 4 != 5

====================================================================== ไม่ผ่าน: testFailWithDocString (foo.testFoo) ฟูบาร์ ---------------------------------------------------------------------- Traceback (ล่าสุด) เรียกล่าสุด): ไฟล์ "foo.py" บรรทัดที่ 31 ใน testFailWithDocString self.assertEqual(2+2, 5) ข้อผิดพลาดเกี่ยวกับการยืนยัน: 4 != 5

---------------------------------------------------------------------- ทำการทดสอบ 8 ครั้งใน 0.001 วินาที

ล้มเหลว (failures=2, errors=1,มีเป้าหมาย 1 รายการ, ความล้มเหลวที่คาดไว้=1, ความล้มเหลวที่ไม่คาดคิด=1, ความสำเร็จที่ไม่คาดคิด=1)

สิ่งที่ต้องทำ: ลองเปลี่ยนโครงสร้างภายในชั้นเรียนทั้งหมด ตอนนี้การจัดการยังค่อนข้างยุ่งเหยิง

สรุป

ช่างก่อสร้างสาธารณะ

PythonUnitTestResultParser(ITestInvocationListener listener, String runName)

สร้าง PythonUnitTestResultParser ใหม่ที่รายงานไปยัง ITestInvocationListener ที่ระบุ

PythonUnitTestResultParser( listeners, String runName)

สร้าง PythonUnitTestResultParser ใหม่ที่รายงานไปยัง ITestInvocationListener ที่ระบุ

PythonUnitTestResultParser( listeners, String runName, includeFilters, excludeFilters)

สร้าง PythonUnitTestResultParser ใหม่ที่รายงานไปยัง ITestInvocationListener ที่ระบุ พร้อมระบุตัวกรอง "รวม" และ "ยกเว้น" ที่ระบุ

วิธีการสาธารณะ

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

วิธีการสาธารณะ

แยกวิเคราะห์ขั้นสุดท้าย

public void finalizeParser ()

ถูกยกเลิก

public boolean isCancelled ()

คิกรีเทิร์น
boolean

ประมวลผลบรรทัดใหม่

public void processNewLines (String[] lines)

ประมวลผลเอาต์พุต unittest ของ Python และรายงานผลลัพธ์ที่แยกวิเคราะห์แล้ว

ควรเรียกเมธอดนี้เพียงครั้งเดียวพร้อมเอาต์พุตแบบเต็ม ซึ่งต่างจากเมธอดพื้นฐานใน MultiLineReceiver

พารามิเตอร์
lines String

setFinalizeWhenParsing

public void setFinalizeWhenParsing (boolean shouldFinalize)

พารามิเตอร์
shouldFinalize boolean