هر ماژول suite (که توسط 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); استفاده خواهد شد.
اینکه آیا در صورت بروز خطا، برخی از گزارشها جمعآوری شوند یا خیر
هنگام اجرای یک مجموعه کامل، میتوان در سطح مجموعه درخواست جمعآوری برخی از گزارشهای خرابی (تصویر صفحه، گزارش اشکال، گزارش خطا) را داد. اما برای برخی از ماژولها، یک گزارش خاص درخواست شده ممکن است هیچ ارزشی نداشته باشد و صرفاً زمان جمعآوری آن را هدر دهد. در این شرایط، یک ماژول میتواند صریحاً مشخص کند که به کدام گزارشها علاقهمند است:
<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>
نکته: پیادهسازی کنترلرها در صورت امکان باید عمومی باشد تا قابلیت استفاده مجدد به حداکثر برسد. و صرف نظر کردن از یک ماژول بر اساس شرایط آن باید توسط مالک ماژول بررسی شود تا تأیید شود که صرف نظر کردن از یک ماژول رفتار مناسبی برای آنهاست.