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