אוסף דוחות באגים

public class BugreportCollector
extends Object implements ITestInvocationListener

JavaScript.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)

מדווח על סיום ההפעלה של מקרה בדיקה ספציפי.

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)

הדוחות הסתיימו של הרצת הבדיקה.

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

פרדיקט מוגדר מראש שמופעל כשההפעלה הראשונה מתחילה

בנאים ציבוריים

אוסף דוחות באגים

public BugreportCollector (ITestInvocationListener listener, 
                ITestDevice testDevice)

פרמטרים
listener ITestInvocationListener

testDevice ITestDevice

שיטות ציבוריות

addPredicate

public void addPredicate (BugreportCollector.Predicate p)

פרמטרים
p BugreportCollector.Predicate

בלוק עדId

public void blockUntilIdle ()

יש לחסום עד שהאוסף לא יאסוף דוחות על באגים. אם אספן לא פעיל איסוף דוח על באג, חזרה מיד

getSummary

public TestSummary getSummary ()

מאפשר ל-InvocationListener להחזיר סיכום.

החזרות
TestSummary TestSummary שמסכם את הריצה, או null

ההפעלה הסתיימה

public void invocationEnded (long elapsedTime)

דיווחים שההפעלה הסתיימה, בין אם בהצלחה או בגלל שגיאה כלשהי תנאי.

תתבצע קריאה אוטומטית על ידי framework של TradeFederation.

פרמטרים
elapsedTime long: זמן ההפעלה שחלף באלפיות השנייה

ההפעלה נכשלה

public void invocationFailed (Throwable cause)

מדווח על הפעלה שלא הושלמה עקב מצב שגיאה כלשהו.

תתבצע קריאה אוטומטית על ידי framework של TradeFederation.

פרמטרים
cause Throwable: הסיבה Throwable לכשל

ההפעלה התחילה

public void invocationStarted (IInvocationContext context)

מדווח על התחלת ההפעלה של הבדיקה.

תתבצע קריאה אוטומטית על ידי framework של TradeFederation. המדווחים צריכים לשנות את ברירת המחדל בשיטה הזאת, יש תמיכה בדיווח על כמה מכשירים.

פרמטרים
context IInvocationContext: מידע על ההפעלה

הגדרה אסינכרונית

public void setAsynchronous (boolean asynchronous)

הגדרה אם איסוף דוחות הבאגים יאסוף את הדוח על הבאג בשרשור אחר (asynchronous = true), או לחסום את המתקשר עד שהדוח על הבאג יתועד (asynchronous = false).

פרמטרים
asynchronous boolean

setDescriptiveName

public void setDescriptiveName (String name)

צריך להגדיר את השם התיאורי שישמש לתיעוד דוחות על באגים. אם null, BugreportCollector יחזור להתנהגות ברירת המחדל של סידור השם בהמשכים האירוע שגרם לאיסוף של הדוח על הבאג.

פרמטרים
name String

setDevicePendingTime (זמן ההמתנה של המכשיר)

public void setDeviceWaitTime (int waitTime)

יש להגדיר את משך הזמן (בשניות) למצב המתנה עד שהמכשיר יהיה במצב אונליין לפני שננסה לצלם על באג. אם הערך שלילי, לא תתבצע בדיקה. כל DeviceNotAvailableException במהלך הבדיקה הזו יתועדו, והמערכת תתעלם מהם.

פרמטרים
waitTime int

testAssumptionFailure

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 כדי להתחיל לקרוא את הנתונים, ולוודא לסגור את StreamStream לאחר השלמת הפעולה. המתקשרים צריכים לוודא שמקור הנתונים יישאר קיימים ונגישים עד לסיום שיטת testLog.

הבדיקה הסתיימה

public void testRunEnded (long elapsedTime, 
                 runMetrics)

הדוחות הסתיימו של הרצת הבדיקה. FIXME: אנחנו לא יכולים ליצור שתי מפות<> עם סוגים שונים, כאן צריך להשתמש ב-HashMap.

פרמטרים
elapsedTime long: דיווח על הזמן שחלף במכשיר, באלפיות השנייה

runMetrics : צמדי מפתח/ערך מדווחים בסיום הרצת בדיקה עם Metric.

הבדיקה נכשלה

public void testRunFailed (String errorMessage)

הפעלת בדיקת הדוחות נכשלה עקב שגיאה חמורה.

פרמטרים
errorMessage String: String מתארת את הסיבה לכשל בהפעלה.

בדיקת ההרצה

public void testRunStarted (String runName, 
                int testCount)

מדווח על התחלה של הרצת בדיקה.

פרמטרים
runName String: שם הרצת הבדיקה

testCount int: מספר הבדיקות הכולל בהרצת הבדיקה

TestRunSStop

public void testRunStopped (long elapsedTime)

הרצת בדיקת הדוחות הופסקה לפני שהסתיימה עקב בקשה של משתמש.

TODO: לא בשימוש כרגע, כדאי להסיר

פרמטרים
elapsedTime long: דיווח על הזמן שחלף במכשיר, באלפיות השנייה

הבדיקה התחילה

public void testStarted (TestDescription test)

מדווח על ההתחלה של מקרה בדיקה ספציפי. בממשק ישן, צריך להשתמש ב-testStarted(com.android.tradefed.result.TestDescription) כשהדבר אפשרי.

פרמטרים
test TestDescription: מזהה את הבדיקה