Cấu hình của Tradefed tuân theo cấu trúc XML để mô tả bài kiểm thử cần chạy và các bước chuẩn bị/thiết lập cần thực hiện.
Về lý thuyết, mọi thứ đều có thể được xác định trong XML cho một lệnh. Nhưng trên thực tế, bạn nên sử dụng các tệp XML mẫu cơ bản và tuỳ chỉnh các tệp này bằng các tham số dòng lệnh bổ sung.
Cấu trúc
<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 tổng thể của Tradefed được phân tách bằng các thẻ <configuration>. Tradefed
objects được xác định trong các thẻ riêng, chẳng hạn như: build_provider,
target_preparer, test, v.v. Mục đích riêng của các thẻ này được mô tả chi tiết hơn trong phần Kiến trúc
.
Mỗi đối tượng có lớp Java được liên kết với đối tượng được xác định trong class= sẽ được phân giải tại thời gian chạy; do đó, miễn là tệp JAR chứa lớp này nằm trên đường dẫn lớp Java của Tradefed khi chạy, thì tệp này sẽ được tìm thấy và phân giải.
Thứ tự của các đối tượng Tradefed
Thứ tự của các thẻ khác nhau không quan trọng. Ví dụ: không có gì khác biệt nếu build_provider được chỉ định sau target_preparer. Luồng lệnh gọi kiểm thử được chính bộ kiểm thử thực thi, vì vậy, bộ kiểm thử này sẽ luôn gọi các thẻ theo đúng thứ tự.
Thứ tự của các đối tượng có cùng một thẻ là quan trọng. Ví dụ: hai đối tượng target_preparer được xác định sẽ được gọi theo thứ tự xác định trong XML. Bạn cần hiểu rõ điều này vì nó có thể thay đổi trạng thái cuối cùng của quá trình thiết lập thiết bị. Ví dụ: việc cài đặt APK rồi ghi lại ROM sẽ không giống với việc ghi lại ROM rồi cài đặt APK vì việc ghi lại ROM sẽ xoá thiết bị.