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