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

Các cấu hình của Tradefed tuân theo cấu trúc XML để mô tả thử nghiệm sẽ được 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 định nghĩa trong XML cho một lệnh duy nhất. Nhưng trong thực tế, sẽ thực tế hơn nếu có các tệp XML mẫu cơ sở và tùy chỉnh chúng bằng các tham số dòng lệnh bổ sung.

Kết cấu

<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 cách bằng các thẻ <configuration> . Tradefed objects được xác định trong các thẻ riêng của chúng, ví dụ: build_provider , target_preparer , test , v.v. Mục đích riêng của chúng đượ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 định nghĩa trong class= được giải quyết khi 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 thì nó sẽ được tìm thấy và giải quyết.

Đơn đặt hàng của các đối tượng được trao đổi thương mại

Thứ tự của các thẻ khác nhau không quan trọng. Ví dụ: sẽ không có gì khác biệt nếu build_provider được chỉ định sau target_preparer . Luồng lệnh gọi thử nghiệm được thực thi bởi chính dây nịt nên nó sẽ luôn gọi chúng theo đúng thứ tự.

Thứ tự của các đối tượng có cùng thẻ không quan trọng . Ví dụ: hai đối tượng target_preparer được xác định sẽ được gọi theo thứ tự định nghĩa của chúng trong XML. Điều quan trọng là phải hiểu đ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ụ: flash rồi cài đặt apk sẽ không giống như cài đặt apk và flash vì flash sẽ xóa sạch thiết bị.