Создание одной монолитной конфигурации XML для определения теста не всегда практично. Если вы хотите повторно использовать часть настройки для запуска похожих тестов, вам придется копировать и поддерживать два гигантских файла XML.
Вот где пригодятся теги template
и include
в определении XML-конфигурации Tradefed. Они позволяют вам устанавливать заполнители в некоторой 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-конфигурациям может быть абсолютным или относительным к папке res/config
внутри ресурсов JAR Tradefed. Вот несколько их расположений:
- инструменты/торговая федерация/ядро/рес/конфигурация
- инструменты/tradefederation/core/тесты/res/config
- инструменты/tradeferation/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>
Включения проще, чем шаблоны, поскольку они не требуют аргументов командной строки; они напрямую расширяют указанный XML в теге name
. Подобно шаблонам, путь к конфигурации может быть абсолютным или относительным. Тем не менее, для includes
мы рекомендуем использовать только относительные пути, поскольку они более переносимы в Tradefed. Абсолютные пути не будут действительны, если Tradefed перенесен на другую машину.
Неправильная конфигурация
В случае неправильной конфигурации, например, когда не удается найти заменяющий XML, Tradefed выдаст исключение ConfigurationException
с описанием того, что, по всей видимости, отсутствует или неправильно настроено.