Non è sempre necessario creare una configurazione XML monolitica per definire un test pratici. Se vuoi riutilizzare parte della configurazione per eseguire test simili, sarebbero costretti a copiare e gestire due file XML giganti.
Qui è dove template
e include
tag nella configurazione XML scambiata
definizione tornano utile. Consentono di impostare segnaposto in 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
come riferimento e un elemento facoltativo
default
. 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
- strumenti/tradedeferation/contributo/ris/config
Definizione di esempio 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>
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
. Analogamente ai modelli,
il percorso della 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 sono validi se il tipo di macchina 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.