Modelli e include nella configurazione XML Tradefed

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.