Конфигурации Tradefed следуют структуре XML для описания теста, который необходимо выполнить, и шагов подготовки/настройки, которые необходимо выполнить.
Теоретически все можно определить в XML для одной команды. Но на практике более практично иметь XML-файлы базовых шаблонов и настраивать их с помощью дополнительных параметров командной строки.
Структура
<configuration description="<description of the configuration>">
<!-- A build provider that takes local device information -->
<build_provider class="com.android.tradefed.build.BootstrapBuildProvider" />
<!-- Some target preparation, disabled by default -->
<target_preparer class="com.android.tradefed.targetprep.PreloadedClassesPreparer">
<option name="disable" value="true" />
</target_preparer>
<!-- One test running some unit tests -->
<test class="com.android.tradefed.testtype.HostTest">
<option name="class" value="com.android.tradefed.build.BuildInfoTest" />
</test>
<!-- [OPTIONAL] -->
<logger class="com.android.tradefed.log.FileLogger">
<option name="log-level" value="VERBOSE" />
<option name="log-level-display" value="VERBOSE" />
</logger>
<!-- [OPTIONAL] -->
<log_saver class="com.android.tradefed.result.FileSystemLogSaver" />
<!-- As many reporters as we want -->
<result_reporter class="com.android.tradefed.result.ConsoleResultReporter" />
<result_reporter class="com.android.tradefed.result.suite.SuiteResultReporter" />
<result_reporter class="com.android.tradefed.result.MetricsXMLResultReporter"/>
</configuration>
Общий XML-файл Tradefed ограничен тегами <configuration>
. Tradefed objects
определяются в своих собственных тегах, например: build_provider
, target_preparer
, test
и т. д. Их индивидуальные назначения более подробно описаны в разделе « Архитектура ».
Каждый объект имеет класс Java, связанный с объектом, определенным в class=
, который разрешается во время выполнения; поэтому, пока файл JAR, содержащий класс, находится в пути к классам Tradefed Java во время работы, он будет найден и разрешен.
Заказы объектов Tradefed
Порядок различных тегов не имеет значения. Например, не имеет значения, указан ли build_provider
после target_preparer
. Поток тестового вызова обеспечивается самой обвязкой, поэтому он всегда будет вызывать их в правильном порядке.
Порядок объектов с одним и тем же тегом имеет значение . Например, два определенных объекта target_preparer
будут вызываться в порядке их определения в XML. Это важно понимать, поскольку это может изменить конечное состояние настройки устройства. Например, перепрошивка с последующей установкой apk не будет такой же, как установка apk и перепрошивка , поскольку перепрошивка сотрет устройство.