Tradefed एक्सएमएल कॉन्फ़िगरेशन का हाई-लेवल स्ट्रक्चर

Tradefed के कॉन्फ़िगरेशन, एक्सएमएल स्ट्रक्चर का पालन करते हैं. इससे, चलाए जाने वाले टेस्ट और तैयारी/सेटअप के चरणों के बारे में जानकारी मिलती है.

सिद्धांत रूप से, एक ही निर्देश के लिए एक्सएमएल में सब कुछ तय किया जा सकता है. हालांकि, आम तौर पर, एक्सएमएल फ़ाइलों के बेस टेंप्लेट का इस्तेमाल करना और उन्हें अतिरिक्त कमांड लाइन पैरामीटर के साथ पसंद के मुताबिक बनाना ज़्यादा बेहतर होता है.

संरचना

<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>

Tradefed एक्सएमएल को <configuration> टैग से सीमांकित किया जाता है. Tradefed objects को उनके टैग में तय किया जाता है. उदाहरण के लिए: build_provider, target_preparer, test वगैरह. उनके अलग-अलग मकसद के बारे में ज़्यादा जानकारी, आर्किटेक्चर सेक्शन में दी गई है.

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

Tradefed ऑब्जेक्ट के ऑर्डर

अलग-अलग टैग के क्रम से कोई फ़र्क़ नहीं पड़ता. उदाहरण के लिए, इससे कोई फ़र्क़ नहीं पड़ता कि build_provider को target_preparer के बाद दिया गया है या नहीं. जांच के लिए, हर फ़ंक्शन को सही क्रम में कॉल करने की ज़िम्मेदारी, हर्नेस की होती है.

एक ही टैग वाले ऑब्जेक्ट के क्रम से फ़र्क़ पड़ता है. उदाहरण के लिए, एक्सएमएल में तय किए गए दो target_preparer ऑब्जेक्ट को, तय किए जाने के क्रम में ही कॉल किया जाएगा. इसे समझना ज़रूरी है, क्योंकि इससे डिवाइस के सेटअप की आखिरी स्थिति बदल सकती है. उदाहरण के लिए, फ़्लैश करने के बाद APK इंस्टॉल करना, APK इंस्टॉल करने के बाद फ़्लैश करना से अलग होगा. ऐसा इसलिए, क्योंकि फ़्लैश करने से डिवाइस का डेटा मिट जाता है.