این صفحه اصول اولیه نحوه پیاده سازی گزارشگر نتیجه جدید و پیکربندی آن برای آزمایش را شرح می دهد.
رابط هسته
به منظور تعریف یک گزارشگر نتیجه جدید در 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>