Cấu trúc cấp cao của cấu hình XML Tradefed

Cấu hình của Tradefed tuân theo cấu trúc XML để mô tả kiểm thử sẽ 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 tệp XML cho một lệnh duy nhất. Tuy nhiên, trong thực tế, bạn nên có các tệp XML mẫu cơ sở và tuỳ chỉnh các tệp đó 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 Tradefed tổng thể được phân tách bằng các thẻ <configuration>. Tradefed objects được xác định trong các thẻ riêng, ví dụ: 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 Cấu trúc.

Mỗi đối tượng có lớp Java liên kết với đối tượng được xác định trong class= được phân giải trong thời gian chạy; vì vậy, miễn là tệp JAR chứa lớp đó nằm trên đường dẫn lớp Java Tradefed khi chạy, tệp đó 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ông quan trọng. Ví dụ: sẽ không có gì khác biệt nếu bạn chỉ định build_provider sau target_preparer. Luồng của lệnh gọi kiểm thử do chính bộ điều khiển thực thi, vì vậy, bộ điều khiển sẽ luôn gọi các lệnh gọi đó 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 kết thúc của quá trình thiết lập thiết bị. Ví dụ: đổ ROM rồi cài đặt tệp APK sẽ không giống như cài đặt tệp APK rồi đổ ROM vì việc đổ ROM sẽ xoá sạch thiết bị.