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 欄位。預設欄位會定義應使用的預設替換 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>

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

設定錯誤

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