Creare una configurazione XML monolitica per definire un test non è sempre pratico. Se desideri riutilizzare parte della configurazione per eseguire test simili, saresti costretto a copiare e mantenere due file XML giganti.
È qui che i tag template
e include
nella definizione della configurazione XML Tradefed tornano utili. Ti consentono di impostare segnaposto in alcune configurazioni XML per aggiungere parte di un'altra configurazione XML.
Definizione di esempio per i modelli
<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>
I modelli sono segnaposto con un name
per farvi riferimento e un campo default
facoltativo. Il campo predefinito definisce l'XML sostitutivo predefinito da utilizzare.
Per sostituire un modello per una determinata configurazione, è necessario aggiungere il seguente parametro di comando alla riga di comando:
--template:map <name of template>=<replacement XML config path>
--template:map preparers=empty
Per esempio:
<template-include name="preparers" default="empty" />
Il riferimento empty
in questo caso si riferisce alla configurazione empty.xml
che non contiene nulla; lo usiamo come riferimento per sostituire con niente .
Il percorso delle configurazioni XML può essere assoluto o relativo alla cartella res/config
all'interno delle risorse JAR di Tradefed. Ecco alcune delle loro posizioni:
- tools/tradefederation/core/res/config
- tools/tradefederation/core/tests/res/config
- tools/tradedeferation/contrib/res/config
Esempio di definizione di include
<configuration description="Common base configuration for local runs with minimum overhead">
<build_provider class="com.android.tradefed.build.BootstrapBuildProvider" />
<include name="empty"/>
</configuration>
Le inclusioni sono più semplici dei modelli poiché non richiedono argomenti sulla riga di comando; espandono direttamente l'XML di riferimento nel tag name
. Analogamente ai modelli, il percorso della configurazione può essere assoluto o relativo. Tuttavia, per includes
consigliamo di utilizzare solo percorsi relativi poiché sono più portabili in Tradefed. I percorsi assoluti non sarebbero validi se Tradefed venisse spostato su un'altra macchina.
Configurazione errata
In caso di configurazione errata, ad esempio quando non è possibile trovare l'XML sostitutivo, Tradefed lancerà una ConfigurationException
con la descrizione di ciò che sembra mancare o mal configurato.