ट्रेडफेड XML कॉन्फ़िगरेशन की उच्च-स्तरीय संरचना

ट्रेडफेड की कॉन्फ़िगरेशन चलाए जाने वाले परीक्षण और की जाने वाली तैयारी/सेटअप चरणों का वर्णन करने के लिए एक XML संरचना का पालन करती है।

सिद्धांत रूप में, एक ही कमांड के लिए XML में सब कुछ परिभाषित किया जा सकता है। लेकिन व्यवहार में, बेस टेम्पलेट XML फ़ाइलें रखना और उन्हें अतिरिक्त कमांड लाइन पैरामीटर के साथ अनुकूलित करना अधिक व्यावहारिक है।

संरचना

<configuration description="<description of the configuration>">
    <!-- A build provider that takes local device information -->
    <build_provider class="com.android.tradefed.build.BootstrapBuildProvider" />

    <!-- Some target preparation, disabled by default -->
    <target_preparer class="com.android.tradefed.targetprep.PreloadedClassesPreparer">
        <option name="disable" value="true" />
    </target_preparer>

    <!-- One test running some unit tests -->
    <test class="com.android.tradefed.testtype.HostTest">
        <option name="class" value="com.android.tradefed.build.BuildInfoTest" />
    </test>

    <!-- [OPTIONAL] -->
    <logger class="com.android.tradefed.log.FileLogger">
        <option name="log-level" value="VERBOSE" />
        <option name="log-level-display" value="VERBOSE" />
    </logger>

    <!-- [OPTIONAL] -->
    <log_saver class="com.android.tradefed.result.FileSystemLogSaver" />

    <!-- As many reporters as we want -->
    <result_reporter class="com.android.tradefed.result.ConsoleResultReporter" />
    <result_reporter class="com.android.tradefed.result.suite.SuiteResultReporter" />
    <result_reporter class="com.android.tradefed.result.MetricsXMLResultReporter"/>
</configuration>

समग्र ट्रेडफेड XML को <configuration> टैग द्वारा सीमांकित किया गया है। Tradefed objects उनके स्वयं के टैग में परिभाषित किया गया है, उदाहरण के लिए: build_provider , target_preparer , test , आदि। उनके व्यक्तिगत उद्देश्यों को आर्किटेक्चर अनुभाग में अधिक विस्तार से वर्णित किया गया है।

प्रत्येक ऑब्जेक्ट में class= में परिभाषित ऑब्जेक्ट से जुड़ा जावा क्लास होता है जिसे रनटाइम पर हल किया जाता है; इसलिए जब तक क्लास वाली JAR फ़ाइल ट्रेडफेड जावा क्लासपाथ पर चल रही है, तब तक इसे ढूंढ लिया जाएगा और हल कर दिया जाएगा।

ट्रेडफेड वस्तुओं के आदेश

विभिन्न टैगों का क्रम कोई मायने नहीं रखता. उदाहरण के लिए, यदि target_preparer के बाद build_provider निर्दिष्ट किया जाता है तो इससे कोई फर्क नहीं पड़ता। परीक्षण आह्वान का प्रवाह हार्नेस द्वारा ही लागू किया जाता है, इसलिए यह उन्हें हमेशा सही क्रम में कॉल करेगा।

समान टैग वाली वस्तुओं का क्रम मायने रखता है । उदाहरण के लिए, परिभाषित दो target_preparer ऑब्जेक्ट को XML में उनकी परिभाषा के क्रम में बुलाया जाएगा। इसे समझना महत्वपूर्ण है क्योंकि यह डिवाइस सेटअप की अंतिम स्थिति को बदल सकता है। उदाहरण के लिए, एपीके इंस्टॉल करने के बाद फ्लैश करना एक एपीके इंस्टॉल करने और फ्लैश करने के समान नहीं होगा क्योंकि फ्लैश करने से डिवाइस नष्ट हो जाएगा।