Das Erstellen einer einzigen monolithischen XML-Konfiguration zum Definieren eines Tests ist nicht immer praktikabel. 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 in einer XML-Konfiguration Platzhalter 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
, auf das verwiesen wird, und einem optionalen default
-Feld. Im Standardfeld wird die Standard-Ersatz-XML definiert, die 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" />
Die Referenz empty
bezieht sich in diesem Fall auf die empty.xml
-Konfiguration, die nichts enthält. Wir verwenden sie als Referenz, um mit nichts zu ersetzen.
Der Pfad der XML-Konfigurationen kann absolut oder relativ zum Ordner res/config
in den JAR-Ressourcen von Tradefed sein. Hier sind einige Standorte:
- tools/tradefederation/core/res/config
- tools/tradefederation/core/tests/res/config
- tools/tradedeferation/contrib/res/config
Beispieldefinition für „umfasst“
<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 die referenzierte XML-Datei direkt im name
-Tag. Ähnlich wie bei Vorlagen kann der Pfad zur Konfiguration absolut oder relativ sein. Wir empfehlen jedoch, für includes
nur relative Pfade zu verwenden, da sie in Tradefed besser portabel sind.
Absolute Pfade sind nicht gültig, wenn Tradefed auf einen anderen Computer verschoben wird.
Fehlerhafte Konfiguration
Bei einer Fehlkonfiguration, z. B. wenn die Ersatz-XML nicht gefunden werden kann, gibt Tradefed einen ConfigurationException
mit einer Beschreibung dessen zurück, was anscheinend fehlt oder falsch konfiguriert ist.