La creazione di una configurazione XML monolitica per definire un test non è sempre praticabile. Se vuoi riutilizzare parte della configurazione per eseguire test simili, dovresti copiare e gestire due file XML di grandi dimensioni.
È qui che entrano in gioco i tag template
e include
nella definizione di configurazione XML
trattata. 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 di sostituzione predefinito da utilizzare.
Per sostituire un modello per una determinata configurazione, alla riga di comando deve essere aggiunto il seguente parametro di comando:
--template:map <name of template>=<replacement XML config path>
--template:map preparers=empty
Ad esempio:
<template-include name="preparers" default="empty" />
In questo caso, il riferimento empty
fa riferimento alla configurazione empty.xml
che non contiene nulla. Lo utilizziamo 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 sedi:
- strumenti/tradefederation/core/res/config
- tools/tradefederation/core/tests/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>
Le inclusioni sono più semplici dei modelli perché non richiedono argomenti della riga di comando.
Estendono direttamente il file XML a cui si fa 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 quando non è possibile trovare il file XML sostitutivo, TradeFed genera un ConfigurationException
con la descrizione di ciò che sembra mancare o essere configurato in modo errato.