استخدام أدوات التحكّم في الوحدات

يمكن أن تحتوي كل وحدة من مجموعة الاختبارات (المحدّدة من خلال AndroidTest.xml) على عنصر module_controller خاص يمكنه تغيير بعض سلوك الوحدة:

تحديد ما إذا كان يجب تشغيل الوحدة أو لا استنادًا إلى بعض الشروط

من خلال تنفيذ BaseModuleController وإضافته إلى AndroidTest.xml على النحو التالي:

<object type="module_controller" class="com.android.tradefed.testtype.suite.module.<NAME>" />

سيتم استخدام وحدة التحكّم في الوحدة لتحديد ما إذا كان يجب تشغيل الوحدة أو لا، استنادًا إلى تنفيذ public abstract RunStrategy shouldRun(IInvocationContext context);.

تحديد ما إذا كان يجب جمع بعض السجلات أو لا عند حدوث حالات فشل

عند تشغيل الحزمة الكاملة، من الممكن طلب جمع بعض السجلات على مستوى الحزمة عند حدوث حالات فشل (لقطة شاشة، تقرير الأخطاء، logcat). ولكن بالنسبة إلى بعض الوحدات، قد لا يكون لأي سجلّ مطلوب قيمة وسيؤدي جمعه ببساطة إلى إضاعة الوقت. في هذه الحالة، يمكن لوحدة معيّنة تحديد السجلات التي تهمّها بشكل صريح:

<object type="module_controller"
        class="com.android.tradefed.testtype.suite.module.TestFailureModuleController">
    <option name="screenshot-on-failure" value="<true OR false>" />
    <option name="bugreportz-on-failure" value="<true OR false>" />
    <option name="logcat-on-failure" value="<true OR false>" />
</object>

ملاحظة: يجب أن يكون تنفيذ وحدات التحكّم عامًا قدر الإمكان لزيادة إمكانية إعادة استخدامها إلى أقصى حد. ويجب أن يراجع مالك الوحدة عملية تخطّي وحدة استنادًا إلى حالتها للحصول على الموافقة على أنّ تخطّي الوحدة هو السلوك المناسب لها.