建立一個單一的 XML 配置來定義測試並不總是可行的。如果您想重複使用部分設定來執行類似的測試,您將被迫複製和維護兩個巨大的 XML 檔案。
這就是 Tradefed XML 配置定義中的template
和include
標籤派上用場的地方。它們允許您在某些 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
並描述似乎遺失或配置錯誤的內容。