BugreportCollector

public class BugreportCollector
extends Object implements ITestInvocationListener

java.lang.Object
com.android.tradefed.result.BugreportCollector


ITestInvocationListener แบบพาส-ทรูที่รวบรวมรายงานจุดบกพร่องเมื่อเหตุการณ์ที่กำหนดค่าได้เกิดขึ้น จากนั้นจึงเรียก ITestInvocationListener#testLog บนรายการย่อยหลังจากรวบรวมรายงานจุดบกพร่องแต่ละรายการแล้ว

พฤติกรรม: (FIXME: จบเรื่องนี้)

  • จับภาพหลังจากนั้นหากมีชุดทดสอบใดล้มเหลว
  • จับภาพหลังจากแต่ละกรณีทดสอบ
  • จับภาพหลังจากแต่ละกรณีทดสอบล้มเหลว
  • การจับกุม

สรุป

คลาสที่ซ้อนกัน

class BugreportCollector.Predicate

ภาคแสดงแบบเต็มที่อธิบายว่าเมื่อใดควรบันทึกรายงานข้อบกพร่อง

interface BugreportCollector.SubPredicate

เขตข้อมูล

public static final BugreportCollector.Predicate AFTER_FAILED_TESTCASES

เพรดิเคตที่กำหนดไว้ล่วงหน้าซึ่งจะเริ่มทำงานหลังจากแต่ละกรณีทดสอบล้มเหลว

public static final BugreportCollector.Predicate AT_START

เพรดิเคตที่กำหนดไว้ล่วงหน้าซึ่งจะเริ่มทำงานเมื่อการเรียกใช้ครั้งแรกเริ่มต้นขึ้น

ผู้รับเหมาก่อสร้างสาธารณะ

BugreportCollector ( ITestInvocationListener listener, ITestDevice testDevice)

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

void addPredicate ( BugreportCollector.Predicate p)
void blockUntilIdle ()

บล็อกจนกว่าตัวรวบรวมจะไม่รวบรวมรายงานข้อบกพร่องใดๆ

TestSummary getSummary ()

อนุญาตให้ InvocationListener ส่งคืนข้อมูลสรุป

void invocationEnded (long elapsedTime)

รายงานว่าการร้องขอสิ้นสุดลงแล้ว ไม่ว่าจะสำเร็จหรือเนื่องมาจากเงื่อนไขข้อผิดพลาดบางประการ

void invocationFailed (Throwable cause)

รายงานการร้องขอที่ไม่สมบูรณ์เนื่องจากมีข้อผิดพลาดบางประการ

void invocationStarted ( IInvocationContext context)

รายงานจุดเริ่มต้นของการเรียกใช้การทดสอบ

void setAsynchronous (boolean asynchronous)

ตั้งค่าว่าการรวบรวมรายงานข้อบกพร่องควรรวบรวมรายงานข้อบกพร่องในเธรดอื่น ( asynchronous = true ) หรือบล็อกผู้เรียกจนกว่ารายงานข้อบกพร่องจะถูกบันทึก ( asynchronous = false )

void setDescriptiveName (String name)

ตั้งชื่อที่สื่อความหมายเพื่อใช้เมื่อบันทึกรายงานข้อบกพร่อง

void setDeviceWaitTime (int waitTime)

ตั้งเวลา (เป็นวินาที) เพื่อรอให้อุปกรณ์ออนไลน์ก่อนที่เราจะพยายามบันทึกรายงานข้อบกพร่อง

void testAssumptionFailure ( TestDescription test, String trace)

เรียกว่าเมื่อการทดสอบอะตอมมิกแฟล็กว่าเงื่อนไขนั้นเป็นเท็จ

void testEnded ( TestDescription test, testMetrics) testEnded ( TestDescription test, testMetrics)

รายงานการสิ้นสุดการดำเนินการของกรณีทดสอบแต่ละรายการ

void testFailed ( TestDescription test, String trace)

รายงานความล้มเหลวของกรณีทดสอบแต่ละรายการ

void testIgnored ( TestDescription test)

เรียกว่าเมื่อการทดสอบจะไม่ทำงาน โดยทั่วไปเนื่องจากวิธีทดสอบมีคำอธิบายประกอบด้วย org.junit.Ignore

void testLog (String dataName, LogDataType dataType, InputStreamSource dataStream)

จัดเตรียมบันทึกที่เกี่ยวข้องหรือข้อมูลการแก้ไขข้อบกพร่องจากการเรียกใช้การทดสอบ

void testRunEnded (long elapsedTime, runMetrics) testRunEnded (long elapsedTime, runMetrics)

รายงานการสิ้นสุดการทดสอบการทำงาน

void testRunFailed (String errorMessage)

รายงานการดำเนินการทดสอบล้มเหลวเนื่องจากข้อผิดพลาดร้ายแรง

void testRunStarted (String runName, int testCount)

รายงานการเริ่มต้นการทดสอบการทำงาน

void testRunStopped (long elapsedTime)

รายงานการทดสอบการทำงานหยุดก่อนที่จะเสร็จสิ้นเนื่องจากคำขอของผู้ใช้

void testStarted ( TestDescription test)

รายงานการเริ่มต้นของกรณีทดสอบแต่ละรายการ

เขตข้อมูล

AFTER_FAILED_TESTCASES

public static final BugreportCollector.Predicate AFTER_FAILED_TESTCASES

เพรดิเคตที่กำหนดไว้ล่วงหน้าซึ่งจะเริ่มทำงานหลังจากแต่ละกรณีทดสอบล้มเหลว

AT_START

public static final BugreportCollector.Predicate AT_START

เพรดิเคตที่กำหนดไว้ล่วงหน้าซึ่งจะเริ่มทำงานเมื่อการเรียกใช้ครั้งแรกเริ่มต้นขึ้น

ผู้รับเหมาก่อสร้างสาธารณะ

BugreportCollector

public BugreportCollector (ITestInvocationListener listener, 
                ITestDevice testDevice)

พารามิเตอร์
listener ITestInvocationListener

testDevice ITestDevice

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

เพิ่มภาคแสดง

public void addPredicate (BugreportCollector.Predicate p)

พารามิเตอร์
p BugreportCollector.Predicate

บล็อกจนกระทั่งไม่ได้ใช้งาน

public void blockUntilIdle ()

บล็อกจนกว่าตัวรวบรวมจะไม่รวบรวมรายงานข้อบกพร่องใดๆ หากผู้รวบรวมไม่ได้รวบรวมรายงานข้อบกพร่องอยู่ ให้ส่งคืนทันที

รับสรุป

public TestSummary getSummary ()

อนุญาตให้ InvocationListener ส่งคืนข้อมูลสรุป

การส่งคืน
TestSummary TestSummary สรุปการรันหรือเป็นโมฆะ

การร้องขอสิ้นสุดแล้ว

public void invocationEnded (long elapsedTime)

รายงานว่าการร้องขอสิ้นสุดลงแล้ว ไม่ว่าจะสำเร็จหรือเนื่องมาจากเงื่อนไขข้อผิดพลาดบางประการ

จะถูกเรียกโดยอัตโนมัติโดยกรอบงาน TradeFederation

พารามิเตอร์
elapsedTime long : เวลาที่ผ่านไปของการร้องขอในหน่วย ms

การร้องขอล้มเหลว

public void invocationFailed (Throwable cause)

รายงานการร้องขอที่ไม่สมบูรณ์เนื่องจากมีข้อผิดพลาดบางประการ

จะถูกเรียกโดยอัตโนมัติโดยกรอบงาน TradeFederation

พารามิเตอร์
cause Throwable : สาเหตุ Throwable ของความล้มเหลว

การร้องขอเริ่มต้นแล้ว

public void invocationStarted (IInvocationContext context)

รายงานจุดเริ่มต้นของการเรียกใช้การทดสอบ

จะถูกเรียกโดยอัตโนมัติโดยกรอบงาน TradeFederation ผู้รายงานจำเป็นต้องแทนที่วิธีนี้เพื่อรองรับการรายงานอุปกรณ์หลายเครื่อง

พารามิเตอร์
context IInvocationContext : ข้อมูลเกี่ยวกับการร้องขอ

ตั้งค่าอะซิงโครนัส

public void setAsynchronous (boolean asynchronous)

ตั้งค่าว่าการรวบรวมรายงานข้อบกพร่องควรรวบรวมรายงานข้อบกพร่องในเธรดอื่น ( asynchronous = true ) หรือบล็อกผู้เรียกจนกว่ารายงานข้อบกพร่องจะถูกบันทึก ( asynchronous = false )

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

ตั้งชื่อคำอธิบาย

public void setDescriptiveName (String name)

ตั้งชื่อที่สื่อความหมายเพื่อใช้เมื่อบันทึกรายงานข้อบกพร่อง หากเป็น null BugreportCollector จะถอยกลับไปใช้พฤติกรรมเริ่มต้นของการทำให้เป็นอนุกรมชื่อของเหตุการณ์ที่ทำให้เกิดการรวบรวมรายงานจุดบกพร่อง

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

ตั้งค่าอุปกรณ์รอเวลา

public void setDeviceWaitTime (int waitTime)

ตั้งเวลา (เป็นวินาที) เพื่อรอให้อุปกรณ์ออนไลน์ก่อนที่เราจะพยายามบันทึกรายงานข้อบกพร่อง หากเป็นลบ จะไม่มีการตรวจสอบ DeviceNotAvailableException ใด ๆ ที่พบในระหว่างการตรวจสอบนี้จะถูกบันทึกและละเว้น

พารามิเตอร์
waitTime int

ทดสอบความล้มเหลว

public void testAssumptionFailure (TestDescription test, 
                String trace)

เรียกว่าเมื่อการทดสอบอะตอมมิกแฟล็กว่าเงื่อนไขนั้นเป็นเท็จ

พารามิเตอร์
test TestDescription : ระบุการทดสอบ

trace String : การติดตามสแต็กของความล้มเหลว

การทดสอบสิ้นสุดแล้ว

public void testEnded (TestDescription test, 
                 testMetrics)

รายงานการสิ้นสุดการดำเนินการของกรณีทดสอบแต่ละรายการ

หากไม่ได้เรียกใช้ testFailed(TestDescription, FailureDescription) แสดงว่าการทดสอบนี้ผ่านไป นอกจากนี้ ยังส่งคืนเมตริกคีย์/ค่าใดๆ ที่อาจถูกส่งออกมาระหว่างการดำเนินการของกรณีทดสอบ

พารามิเตอร์
test TestDescription : ระบุการทดสอบ

testMetrics : ERROR(/Map) ของตัวชี้วัดที่ปล่อยออกมา

การทดสอบล้มเหลว

public void testFailed (TestDescription test, 
                String trace)

รายงานความล้มเหลวของกรณีทดสอบแต่ละรายการ

จะถูกเรียกระหว่าง testStarted และ testEnded

พารามิเตอร์
test TestDescription : ระบุการทดสอบ

trace String : การติดตามสแต็กของความล้มเหลว

ทดสอบละเว้น

public void testIgnored (TestDescription test)

เรียกว่าเมื่อการทดสอบจะไม่ทำงาน โดยทั่วไปเนื่องจากวิธีทดสอบมีคำอธิบายประกอบด้วย org.junit.Ignore

พารามิเตอร์
test TestDescription : ระบุการทดสอบ

บันทึกการทดสอบ

public void testLog (String dataName, 
                LogDataType dataType, 
                InputStreamSource dataStream)

จัดเตรียมบันทึกที่เกี่ยวข้องหรือข้อมูลการแก้ไขข้อบกพร่องจากการเรียกใช้การทดสอบ

จะต้องถูกเรียกก่อน ERROR(/ITestInvocationListener#invocationFailed(Throwable)) หรือ ERROR(/ITestInvocationListener#invocationEnded(long))

กรอบงาน TradeFederation จะเรียกเมธอดนี้โดยอัตโนมัติ โดยจัดเตรียมบันทึกของโฮสต์และ logcat ของอุปกรณ์ หากมี

พารามิเตอร์
dataName String : ชื่อที่สื่อความหมาย String ของข้อมูล เช่น "device_logcat" หมายเหตุ dataName อาจไม่ซ้ำกันต่อการร้องขอ นั่นคือผู้ดำเนินการจะต้องสามารถจัดการการโทรหลายครั้งด้วย dataName เดียวกัน

dataType LogDataType : LogDataType ของข้อมูล

dataStream InputStreamSource : InputStreamSource ของข้อมูล ผู้นำไปใช้งานควรเรียก createInputStream เพื่อเริ่มอ่านข้อมูล และตรวจสอบให้แน่ใจว่าได้ปิด InputStream ที่เป็นผลลัพธ์เมื่อเสร็จสิ้น ผู้โทรควรตรวจสอบให้แน่ใจว่าแหล่งที่มาของข้อมูลยังคงอยู่และสามารถเข้าถึงได้จนกว่าวิธี testLog จะเสร็จสิ้น

ทดสอบรันสิ้นสุดแล้ว

public void testRunEnded (long elapsedTime, 
                 runMetrics)

รายงานการสิ้นสุดการทดสอบการทำงาน การแก้ไข: เราไม่สามารถมีอินเทอร์เฟซ Map<> สองอินเทอร์เฟซที่มีประเภทต่างกันได้ ดังนั้นเราจึงต้องใช้ HashMap ที่นี่

พารามิเตอร์
elapsedTime long : อุปกรณ์รายงานเวลาที่ผ่านไป หน่วยเป็นมิลลิวินาที

runMetrics : คู่คีย์-ค่าที่รายงานเมื่อสิ้นสุดการทดสอบการทำงานด้วย Metric

testRunFailed

public void testRunFailed (String errorMessage)

รายงานการดำเนินการทดสอบล้มเหลวเนื่องจากข้อผิดพลาดร้ายแรง

พารามิเตอร์
errorMessage String : String ที่อธิบายสาเหตุของความล้มเหลวในการรัน

ทดสอบ RunStarted

public void testRunStarted (String runName, 
                int testCount)

รายงานการเริ่มต้นการทดสอบการทำงาน

พารามิเตอร์
runName String : ชื่อการทดสอบการทำงาน

testCount int : จำนวนการทดสอบทั้งหมดในการทดสอบ

testRunStopped

public void testRunStopped (long elapsedTime)

รายงานการทดสอบการทำงานหยุดก่อนที่จะเสร็จสิ้นเนื่องจากคำขอของผู้ใช้

สิ่งที่ต้องทำ: ไม่ได้ใช้ในขณะนี้ โปรดพิจารณาลบออก

พารามิเตอร์
elapsedTime long : อุปกรณ์รายงานเวลาที่ผ่านไป หน่วยเป็นมิลลิวินาที

ทดสอบเริ่มต้นแล้ว

public void testStarted (TestDescription test)

รายงานการเริ่มต้นของกรณีทดสอบแต่ละรายการ อินเทอร์เฟซรุ่นเก่า ควรใช้ testStarted(com.android.tradefed.result.TestDescription) ทุกครั้งที่เป็นไปได้

พารามิเตอร์
test TestDescription : ระบุการทดสอบ