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