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 फ़ाइल जब व्यापारी जावा क्लास पाथ पर चल रहा होगा, तो उसे मिल जाएगा और उसका समाधान हो जाएगा.

ट्रेड किए गए ऑब्जेक्ट के ऑर्डर

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

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