進行交易 XML 設定的高階結構

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 會以 <configuration> 標記分隔。Tradefed objects 會在其專屬的標記中定義,例如 build_providertarget_preparertest 等。架構一節會更詳細說明各自的用途。

每個物件都有 Java 類別,與 class= 中定義的物件相關聯,並在執行階段解析;因此,只要包含該類別的 JAR 檔案在執行時位於 Tradefed Java 路徑集上,就會找到並解析該類別。

Tradefed 物件的訂單

各標記的順序沒有影響。舉例來說,如果在 target_preparer 後指定 build_provider,兩者沒有差異。測試叫用作業的流程是由測試套件本身強制執行,因此系統一律會以正確的順序叫用測試。

同一個標記的物件順序確實很重要。舉例來說,系統會依 XML 中定義的順序呼叫兩個定義的 target_preparer 物件。請務必瞭解這項資訊,因為這可能會變更裝置設定的最終狀態。例如,刷新後安裝 apk安裝 APK 和刷新不同,因為刷新會抹除裝置。