החל מ-27 במרץ 2025, מומלץ להשתמש ב-android-latest-release
במקום ב-aosp-main
כדי ליצור תרומות ל-AOSP. מידע נוסף זמין במאמר שינויים ב-AOSP.
יצירת דיווח על תוצאות
קל לארגן דפים בעזרת אוספים
אפשר לשמור ולסווג תוכן על סמך ההעדפות שלך.
בדף הזה מוסבר איך מטמיעים דיווח על תוצאות חדש ומגדירים אותו לבדיקה.
ממשק הליבה
כדי להגדיר דיווח על תוצאות חדש ב-Tradefed, צריך להטמיע בכיתה את הממשק ITestInvocationListener
שמאפשר לקבל ולטפל בשלבים השונים של ההפעלה:
invocationStarted
invocationEnded
invocationFailed
דיווחים על תוצאות מטפלים גם בשלבים השונים של כל הרצה של הבדיקה:
testRunStarted
testStarted
testFailed
או testIgnored
testEnded
testRunFailed
testRunEnded
בהתאם לכל האירועים האלה, יש שני סוגים עיקריים של דיווח על תוצאות: דיווח על תוצאות:
- חשוב רק לדווח על התוצאות הסופיות והמלאות.
- לבצע פעולות לגבי תוצאות חלקיות.
דיווח על תוצאות שמדווח על תוצאות סופיות מלאות
זהו הסוג הנפוץ ביותר כשמדובר באינטראקציה עם שירות חיצוני שמקבל את התוצאות. הכלי שמדווח על האירוע פשוט מקבל את התוצאות ומצטבר אותן, ואז שולח את כולן ב-invocationEnded
לנקודת הקצה של התוצאה.
אנחנו ממליצים לדווח על אירועים כאלה באמצעות CollectingTestListener
במקום הממשק הבסיסי, כדי להימנע מהטמעה מחדש של השמירה והאחסון של התוצאות עד ל-invocationEnded
.
דיווח על תוצאות שמדווח על תוצאות חלקיות
הסוג הזה משמש בדרך כלל לגישה של סטרימינג לתוצאות, כשהתוצאות מתקבלות ומועברות למקומות אחרים באופן מיידי. לדוגמה, דיווח שמתעד את התוצאות במסוף ייחשב כדיווח מסוג זה.
הסוג הזה ספציפי לסוג הטיפול הנדרש באירועים, ולכן בדרך כלל מומלץ להטמיע את הממשק הבסיסי.
הגדרות XML
תג האובייקט הוא result_reporter
. לדוגמה:
<result_reporter class="com.android.tradefed.result.ConsoleResultReporter">
<option name="suppress-passed-tests" value="true"/>
</result_reporter>
דוגמאות התוכן והקוד שבדף הזה כפופות לרישיונות המפורטים בקטע רישיון לתוכן. Java ו-OpenJDK הם סימנים מסחריים או סימנים מסחריים רשומים של חברת Oracle ו/או של השותפים העצמאיים שלה.
עדכון אחרון: 2025-07-27 (שעון UTC).
[[["התוכן קל להבנה","easyToUnderstand","thumb-up"],["התוכן עזר לי לפתור בעיה","solvedMyProblem","thumb-up"],["סיבה אחרת","otherUp","thumb-up"]],[["חסרים לי מידע או פרטים","missingTheInformationINeed","thumb-down"],["התוכן מורכב מדי או עם יותר מדי שלבים","tooComplicatedTooManySteps","thumb-down"],["התוכן לא עדכני","outOfDate","thumb-down"],["בעיה בתרגום","translationIssue","thumb-down"],["בעיה בדוגמאות/בקוד","samplesCodeIssue","thumb-down"],["סיבה אחרת","otherDown","thumb-down"]],["עדכון אחרון: 2025-07-27 (שעון UTC)."],[],[],null,["# Create a result reporter\n\nThis page describes the basics of how to implement a new result reporter and\nconfigure it for a test.\n\nCore interface\n--------------\n\nIn order to define a new result reporter in Tradefed, a class must implement\nthe\n[`ITestInvocationListener`](https://android.googlesource.com/platform/tools/tradefederation/+/refs/heads/android16-release/invocation_interfaces/com/android/tradefed/result/ITestInvocationListener.java)\ninterface that allows receiving and handling different stages of the\ninvocation:\n\n- `invocationStarted`\n- `invocationEnded`\n- `invocationFailed`\n\nResult reporters also handle the different stages of each test run:\n\n- `testRunStarted`\n- `testStarted`\n- `testFailed` or `testIgnored`\n- `testEnded`\n- `testRunFailed`\n- `testRunEnded`\n\nGiven all these events, there are two main types of result reporters, those that:\n\n- Care only about reporting the final complete results.\n- Take action on partial results.\n\n### Result reporter that reports final complete results\n\nThis type is the most common case when it comes to interacting with an external\nservice that receives the results. The reporter simply receives and accumulates\nthe results and then sends them all on `invocationEnded` to the result end-point.\n\nWe recommend that those reporters extend `CollectingTestListener` instead\nof the base interface in order to avoid reimplementing saving and storing the\nresults until `invocationEnded`.\n\n### Result reporter that reports partial results\n\nThis type is usually used for a streaming approach of the results, when results\nare received and pushed to some other places right away. For example, a reporter\nthat logs the results to the console would be of this type.\n\nThis type is specific to which type of handling is required on the events,\nso implementing the base interface is usually the recommended way.\n\n### XML configuration\n\nThe object tag is `result_reporter`. For example: \n\n \u003cresult_reporter class=\"com.android.tradefed.result.ConsoleResultReporter\"\u003e\n \u003coption name=\"suppress-passed-tests\" value=\"true\"/\u003e\n \u003c/result_reporter\u003e"]]