تتّبع إعدادات 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
وما إلى ذلك، ويتم وصف الأغراض الفردية لهذه العلامات بتفصيل أكبر في قسم البنية.
يحتوي كل عنصر على فئة Java مرتبطة بالعنصر محدّدة في class=
يتم تحديدها في وقت التشغيل، لذا طالما أنّ ملف JAR الذي يحتوي على الفئة
موجود في مسار فئة Java في Tradefed عند التشغيل، سيتم العثور عليه وتحديده.
ترتيب عناصر Tradefed
لا يهم ترتيب العلامات المختلفة. على سبيل المثال، لا يهمّ إذا تم تحديد build_provider
بعد target_preparer
. يتم فرض تسلسل استدعاء الاختبار من خلال أداة الاختبار نفسها، لذا سيتم دائمًا استدعاؤها بالترتيب الصحيح.
ترتيب العناصر التي تحمل العلامة نفسها مهم. على سبيل المثال، سيتم استدعاء عنصرَي
target_preparer
محدَّدَين بترتيب تعريفهما في ملف XML. من المهم فهم ذلك لأنّه يمكن أن يغيّر الحالة النهائية لإعداد الجهاز. على سبيل المثال، لن يكون تثبيت ملف APK بعد إجراء عملية فلاش هو نفسه تثبيت ملف APK ثم إجراء عملية فلاش لأنّ عملية الفلاش ستؤدي إلى محو بيانات الجهاز.