Es ist nicht immer praktisch, eine monolithische XML-Konfiguration zum Definieren eines Tests zu erstellen. Wenn Sie einen Teil der Einrichtung für ähnliche Tests wiederverwenden möchten, müssten Sie zwei riesige XML-Dateien kopieren und verwalten.
Hier kommen die Tags template
und include
in der Tradefed-XML-Konfigurationsdefinition ins Spiel. Damit können Sie Platzhalter in einer XML-Konfiguration festlegen, 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
, um darauf zu verweisen, und einem optionalen Feld default
. Das Standardfeld definiert das standardmäßige Ersatz-XML, das verwendet werden soll.
Wenn Sie eine Vorlage für eine bestimmte Konfiguration ersetzen möchten, muss der Befehlszeile der folgende Befehlsparameter hinzugefügt werden:
--template:map <name of template>=<replacement XML config path>
--template:map preparers=empty
Beispiel:
<template-include name="preparers" default="empty" />
Der empty
-Verweis bezieht sich in diesem Fall auf die empty.xml
-Konfiguration, die nichts enthält. Wir verwenden sie als Referenz für durch nichts 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
Beispiel für die Definition 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 keine Befehlszeilenargumente erforderlich sind. Sie erweitern das referenzierte XML direkt im name
-Tag. Ähnlich wie bei Vorlagen kann der Pfad zur Konfiguration absolut oder relativ sein. Für includes
empfehlen wir jedoch, nur relative Pfade zu verwenden, da sie in Tradefed portabler sind.
Absolute Pfade wären ungültig, wenn Tradefed auf einen anderen Computer verschoben wird.
Fehlerhafte Konfiguration
Bei einer Fehlkonfiguration, z. B. wenn das Ersatz-XML nicht gefunden werden kann, gibt Tradefed einen ConfigurationException
-Fehler mit einer Beschreibung der fehlenden oder falsch konfigurierten Elemente aus.