يمكن أن تحتوي كل وحدة من حزمة التطبيقات (المحدّدة بواسطة 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>
ملاحظة: يجب أن يكون تنفيذ أدوات التحكّم عامًا قدر الإمكان من أجل تحقيق أقصى قدر من إمكانية إعادة الاستخدام. ويجب أن يراجع مالك الوحدة تخطّي وحدة استنادًا إلى شرطها للحصول على الموافقة على أنّ تخطّي الوحدة هو السلوك المناسب لها.