یک گزارشگر نتیجه ایجاد کنید

این صفحه اصول اولیه نحوه پیاده سازی گزارشگر نتیجه جدید و پیکربندی آن برای آزمایش را شرح می دهد.

رابط هسته

به منظور تعریف یک گزارشگر نتیجه جدید در 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>