از 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>
محتوا و نمونه کدها در این صفحه مشمول پروانههای توصیفشده در پروانه محتوا هستند. جاوا و OpenJDK علامتهای تجاری یا علامتهای تجاری ثبتشده Oracle و/یا وابستههای آن هستند.
تاریخ آخرین بهروزرسانی 2025-07-29 بهوقت ساعت هماهنگ جهانی.
[[["درک آسان","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-29 بهوقت ساعت هماهنگ جهانی."],[],[],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"]]