Las configuraciones de Tradefed siguen una estructura XML para describir la prueba que se ejecutará. y los pasos de preparación o configuración.
En teoría, todo se puede definir en el XML para un solo comando. Pero en práctica, es más práctico tener archivos XML de plantilla base y personalizarlos con parámetros de línea de comandos adicionales.
Estructura
<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>
El XML de Tradefed general está delimitado por etiquetas <configuration>
. Tradefed
objects
se definen en sus propias etiquetas, por ejemplo: build_provider
,
target_preparer
, test
, etc. Sus propósitos individuales se describen en más detalle.
detalles en Arquitectura
sección.
Cada objeto tiene la clase Java asociada con el objeto definido en class=
.
que se resuelve en el tiempo de ejecución; siempre que el archivo JAR que contiene la clase esté
en la ruta de clase de Java de Tradefed cuando se ejecuta, se encontrará y resolverá.
Pedidos de objetos Tradefed
El orden de las diferentes etiquetas no es importante. Por ejemplo, no tiene
diferencia si build_provider
se especifica después de target_preparer
. El flujo de
El agente aplica la invocación de prueba, por lo que siempre llamará
en el orden correcto.
El orden de los objetos con la misma etiqueta sí importa. Por ejemplo, dos
Se llamará a los objetos target_preparer
definidos en el orden de definición en
el XML. Es importante entender esto, ya que puede cambiar el estado final de
la configuración del dispositivo. Por ejemplo, escribir un APK en la memoria flash y, luego, instalarlo no sería la tarea
lo mismo que instalar un APK y escribir en la memoria flash, ya que esta acción limpiaría el dispositivo.