כל מודול של חבילה (מוגדר על ידי 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>
הערה: אם אפשר, כדאי להטמיע בקרים גנריים כדי למקסם את האפשרות לשימוש חוזר. בעל המודול צריך לבדוק אם דילוג על מודול על סמך התנאי שלו הוא ההתנהגות הנכונה במקרה שלו.