Высокоуровневая структура конфигурации Tradefed XML

Конфигурации 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 и прошивка, поскольку перепрошивка приведет к стиранию устройства.