範本,並納入交易 XML 設定

建立一個單一 XML 設定來定義測試不一定實用。如果您想重複使用部分設定來執行類似的測試,就必須複製並維護兩個巨大的 XML 檔案。

這就是 Tradefed XML 設定定義中的 templateinclude 標記派上用場的地方。您可以在某些 XML 設定中設定預留位置,以便新增其他 XML 設定的部分內容。

範本定義範例

<configuration description="Common base configuration for local runs with minimum overhead">
    <build_provider class="com.android.tradefed.build.BootstrapBuildProvider" />

    <template-include name="preparers" default="empty" />

    <template-include name="test" default="empty" />

    <template-include name="reporters" default="empty" />
</configuration>

範本是具有 name 用來參照範本的預留位置,此外則為選填的 default 欄位。預設欄位會定義應使用的預設替換 XML。

如要替換特定設定的範本,請在指令列中加入下列指令參數:

--template:map <name of template>=<replacement XML config path>

--template:map preparers=empty

例如:

<template-include name="preparers" default="empty" />

在此情況下,empty 參照會參照不含任何內容的 empty.xml 設定;我們會將其用於替換為空值

XML 設定的路徑可以是 Tradefed JAR 資源中 res/config 資料夾的絕對路徑或相對路徑。以下列舉其中幾個地點:

  • tools/tradefederation/core/res/config
  • tools/tradefederation/core/tests/res/config
  • tools/tradedeferation/contrib/res/config

範例定義:includes

<configuration description="Common base configuration for local runs with minimum overhead">
    <build_provider class="com.android.tradefed.build.BootstrapBuildProvider" />

    <include name="empty"/>
</configuration>

「包含」比範本更簡單,因為這類項目不需要指令列引數,可直接展開 name 標記中參照的 XML。與範本類似,設定檔的路徑可以是絕對路徑或相對路徑。不過,對於 includes,我們建議只使用相對路徑,因為在 Tradefed 中,相對路徑的移植性較高。如果 Tradefed 移至其他機器,絕對路徑就會失效。

設定錯誤

如果發生設定錯誤 (例如找不到替換 XML),Tradefed 會擲回 ConfigurationException,並說明缺少或設定錯誤的項目。