Modelli e include nella configurazione XML di Tradefed

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.