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

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

میانای اصلی

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