การกำหนดค่าของ 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 ที่มีคลาสอยู่
ใน classpath ของ Java ของ Tradefed เมื่อเรียกใช้ ระบบจะค้นหาและแก้ไขได้
ลำดับของออบเจ็กต์ Tradefed
ลำดับของแท็กต่างๆ ไม่มีความสำคัญ เช่น การระบุ build_provider
หลัง target_preparer
จะไม่มีผลใดๆ ลำดับการเรียกใช้การทดสอบจะบังคับใช้โดย Harness เอง ดังนั้น Harness จะเรียกใช้การทดสอบตามลำดับที่ถูกต้องเสมอ
ลำดับของออบเจ็กต์ที่มีแท็กเดียวกันมีความสำคัญ เช่น ออบเจ็กต์ 2 รายการที่กำหนดไว้จะเรียกใช้ตามลำดับการกำหนดใน XMLtarget_preparer
คุณควรทำความเข้าใจเรื่องนี้เนื่องจากอาจเปลี่ยนสถานะสุดท้ายของการตั้งค่าอุปกรณ์ได้ เช่น การแฟลชแล้วติดตั้ง APK จะไม่เหมือนกับการติดตั้ง APK แล้วแฟลช เนื่องจากแฟลชจะล้างข้อมูลในอุปกรณ์