हर सुइट मॉड्यूल (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>
ध्यान दें: कंट्रोलर को लागू करने का तरीका सामान्य होना चाहिए, ताकि उनका दोबारा इस्तेमाल किया जा सके. इसके अलावा, किसी मॉड्यूल को उसकी शर्त के आधार पर छोड़ने से पहले, मॉड्यूल के मालिक को इसकी समीक्षा करनी चाहिए. इससे यह पुष्टि की जा सकेगी कि मॉड्यूल को छोड़ना, उनके लिए सही तरीका है.