Tradefed 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 欄位。「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

包含項目的定義範例

<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,並說明似乎缺少或設定錯誤的項目。