Das Erstellen einer monolithischen XML-Konfiguration zum Definieren eines Tests ist nicht immer praktikabel. Wenn Sie einen Teil des Setups wiederverwenden möchten, um ähnliche Tests auszuführen, wären Sie gezwungen, zwei riesige XML-Dateien zu kopieren und zu verwalten.
Hier kommen template
und include
-Tags in der Tradefed XML-Konfigurationsdefinition zum Einsatz. Sie ermöglichen es Ihnen, Platzhalter in einer XML-Konfiguration festzulegen, um einen Teil einer anderen XML-Konfiguration hinzuzufügen.
Beispieldefinition für Vorlagen
<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>
Vorlagen sind Platzhalter mit einem name
zur Referenzierung und einem optionalen default
. Das Standardfeld definiert die standardmäßige Ersatz-XML, die verwendet werden soll.
Um eine Vorlage für eine bestimmte Konfiguration zu ersetzen, muss der folgende Befehlsparameter zur Befehlszeile hinzugefügt werden:
--template:map <name of template>=<replacement XML config path>
--template:map preparers=empty
Zum Beispiel:
<template-include name="preparers" default="empty" />
Die empty
Referenz bezieht sich in diesem Fall auf die Konfiguration empty.xml
, die nichts enthält; Wir verwenden es als unsere Referenz, um es durch Nothing zu ersetzen .
Der Pfad von XML-Konfigurationen kann absolut oder relativ zum Ordner res/config
in den JAR-Ressourcen von Tradefed sein. Hier sind einige ihrer Standorte:
- tools/tradefederation/core/res/config
- tools/tradefederation/core/tests/res/config
- tools/tradedeferation/contrib/res/config
Beispieldefinition von Includes
<configuration description="Common base configuration for local runs with minimum overhead">
<build_provider class="com.android.tradefed.build.BootstrapBuildProvider" />
<include name="empty"/>
</configuration>
Includes sind einfacher als Vorlagen, da sie keine Befehlszeilenargumente erfordern; Sie erweitern direkt das referenzierte XML im name
-Tag. Ähnlich wie bei Vorlagen kann der Pfad zur Konfiguration absolut oder relativ sein. Dennoch empfehlen wir, für includes
nur relative Pfade zu verwenden, da diese in Tradefed besser portierbar sind. Absolute Pfade wären ungültig, wenn Tradefed auf einen anderen Computer verschoben würde.
Fehlkonfiguration
Im Falle einer Fehlkonfiguration, beispielsweise wenn das Ersatz-XML nicht gefunden werden kann, löst Tradefed eine ConfigurationException
mit einer Beschreibung dessen aus, was scheinbar fehlt oder falsch konfiguriert ist.