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 XML को <configuration>
टैग से सीमांकित किया जाता है. Tradefed
objects
को उनके टैग में तय किया जाता है. उदाहरण के लिए: build_provider
, target_preparer
, test
वगैरह. इनके अलग-अलग मकसद के बारे में ज़्यादा जानकारी आर्किटेक्चर सेक्शन में दी गई है.
हर ऑब्जेक्ट में, ऑब्जेक्ट से जुड़ी Java क्लास होती है. इसे class=
में तय किया जाता है. इसे रनटाइम में हल किया जाता है. इसलिए, जब क्लास वाली JAR फ़ाइल, Tradefed Java क्लासपाथ पर होती है, तब इसे ढूंढकर हल किया जाता है.
Tradefed ऑब्जेक्ट के ऑर्डर
अलग-अलग टैग के क्रम से कोई फ़र्क़ नहीं पड़ता. उदाहरण के लिए, target_preparer
के बाद build_provider
को शामिल करने से कोई फ़र्क़ नहीं पड़ता. टेस्ट शुरू करने का फ़्लो, हार्नेस खुद लागू करता है. इसलिए, यह हमेशा उन्हें सही क्रम में कॉल करेगा.
एक ही टैग वाले ऑब्जेक्ट का क्रम मायने रखता है. उदाहरण के लिए, तय किए गए दो target_preparer
ऑब्जेक्ट को एक्सएमएल में तय किए गए क्रम में कॉल किया जाएगा. इसे समझना ज़रूरी है, क्योंकि इससे डिवाइस के सेटअप की आखिरी स्थिति बदल सकती है. उदाहरण के लिए, APK फ़ाइल को फ़्लैश करने के बाद इंस्टॉल करना, APK फ़ाइल को इंस्टॉल करने के बाद फ़्लैश करने से अलग होगा, क्योंकि फ़्लैश करने से डिवाइस का डेटा मिट जाएगा.