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資料夾。以下是他們的一些位置:

  • 工具/tradefederation/核心/res/config
  • 工具/tradefederation/核心/測試/res/config
  • 工具/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並描述似乎遺失或配置錯誤的內容。