創建一個單一的 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
配置不包含任何內容;我們用它作為我們的參考來替換 nothing 。
XML 配置的路徑可以是絕對或相對於 Tradefed 的 JAR 資源中的res/config
文件夾。以下是他們的一些位置:
- 工具/tradefederation/core/res/config
- 工具/tradefederation/core/tests/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
並描述似乎缺少或配置錯誤的內容。