মডিউল কন্ট্রোলার ব্যবহার করা

প্রতিটি স্যুট মডিউলে (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>

মনে রাখবেন: কন্ট্রোলারের প্রয়োগ জেনেরিক হওয়া উচিত যাতে পুনর্ব্যবহারযোগ্যতা সর্বাধিক করা যায়। মডিউলের কন্ডিশনের উপর ভিত্তি করে সেটি এড়িয়ে যাওয়া হলে, মডিউল মালিককে সেটি পর্যালোচনা করে দেখতে হবে যে মডিউল এড়িয়ে যাওয়া তার জন্য সঠিক আচরণ কিনা।