Non è sempre necessario creare una configurazione XML monolitica per definire un test pratici. Se vuoi riutilizzare parte della configurazione per eseguire test simili, dovresti copiare e gestire due file XML di grandi dimensioni.
È qui che i tag template
e include
nella definizione di configurazione XML di Tradefed sono 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 facultativodefault
. Il campo predefinito definisce il file XML sostitutivo predefinito che
di destinazione.
Per sostituire un modello per una determinata configurazione, il comando seguente da aggiungere alla riga di comando:
--template:map <name of template>=<replacement XML config path>
--template:map preparers=empty
Ad 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 alla sostituzione senza nulla.
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:
- strumenti/tradefederation/core/res/config
- strumenti/tradefederation/core/test/res/config
- tools/tradedeferation/contrib/res/config
Definizione di esempio di includes
<configuration description="Common base configuration for local runs with minimum overhead">
<build_provider class="com.android.tradefed.build.BootstrapBuildProvider" />
<include name="empty"/>
</configuration>
Gli elementi inclusi sono più semplici dei modelli, in quanto non richiedono argomenti della riga di comando;
espande direttamente il file XML di riferimento nel tag name
. Come per i modelli, il percorso alla configurazione può essere assoluto o relativo. Tuttavia, per includes
consigliamo di utilizzare solo percorsi relativi, in quanto sono più portabili in Tradefed.
I percorsi assoluti non sarebbero validi se Tradefed viene spostato su un'altra macchina.
Configurazione errata
In caso di configurazione errata, ad esempio se non è possibile trovare il file XML sostitutivo,
Tradefed genererà un ConfigurationException
con la descrizione di ciò che sembra
mancante o configurato in modo errato.