پیکربندیهای Tradefed از یک ساختار 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 Tradefed توسط تگهای <configuration> محدود شده است. Tradefed objects در تگهای مخصوص به خود تعریف میشوند، برای مثال: build_provider ، target_preparer ، test و غیره. اهداف جداگانه آنها با جزئیات بیشتر در بخش معماری توضیح داده شده است.
هر شیء دارای کلاس جاوا مرتبط با شیء تعریف شده در class= است که در زمان اجرا حل میشود؛ بنابراین تا زمانی که فایل JAR حاوی کلاس در مسیر کلاس Tradefed Java هنگام اجرا باشد، پیدا و حل خواهد شد.
سفارشهای اشیاء Tradefed
ترتیب تگهای مختلف مهم نیست. برای مثال، فرقی نمیکند که build_provider بعد از target_preparer مشخص شود. جریان فراخوانی تست توسط خودِ Harness اعمال میشود، بنابراین همیشه آنها را به ترتیب صحیح فراخوانی میکند.
ترتیب اشیاء با برچسب یکسان مهم است . برای مثال، دو شیء target_preparer تعریف شده به ترتیب تعریف خود در XML فراخوانی میشوند. درک این موضوع مهم است زیرا میتواند وضعیت نهایی راهاندازی دستگاه را تغییر دهد. برای مثال، فلش کردن و سپس نصب apk با نصب apk و فلش کردن یکسان نیست زیرا فلش کردن باعث پاک شدن اطلاعات دستگاه میشود.