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 ใหม่ที่รายงานไปยัง ITestInvocationListener ที่กำหนด

PythonUnitTestResultParser ( listeners, String runName) PythonUnitTestResultParser ( listeners, String runName)

สร้าง PythonUnitTestResultParser ใหม่ที่รายงานไปยัง ITestInvocationListener ที่กำหนด

PythonUnitTestResultParser ( listeners, String runName, includeFilters, excludeFilters) PythonUnitTestResultParser ( listeners, String runName, includeFilters, excludeFilters) PythonUnitTestResultParser ( listeners, String runName, includeFilters, excludeFilters) 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

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

จบ 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