هر واحد مجموعه (تعریفشده با 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>
توجه: پیادهسازی کنترلکنندهها باید تا حد امکان عمومی باشد تا قابلیت استفاده مجدد به حداکثر برسد. و رد کردن یک واحد براساس شرایط آن باید توسط مالک واحد بررسی شود تا تأیید شود که رد کردن یک واحد رفتار مناسبی برای آنها است.