توضح هذه الصفحة أساسيات كيفية تنفيذ مُبلغ النتائج الجديد وتكوينه للاختبار.
الواجهة الأساسية
من أجل تحديد مُبلغ نتيجة جديد في 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>