Vorlagen und Includes in der Tradefed-XML-Konfiguration

Es ist nicht immer praktisch, eine monolithische XML-Konfiguration zum Definieren eines Tests zu erstellen. Wenn Sie einen Teil der Einrichtung wiederverwenden möchten, um ähnliche Tests durchzuführen, müssten Sie zwei riesige XML-Dateien kopieren und verwalten.

Hier werden template- und include-Tags in der Tradefed-XML-Konfiguration verwendet. hilfreich sind. Sie ermöglichen es Ihnen, Platzhalter in -Konfiguration, 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. Das Standardfeld definiert die standardmäßige Ersatz-XML, verwendet werden sollte.

Um eine Vorlage für eine bestimmte Konfiguration zu ersetzen, führt der folgende Befehl muss der Befehlszeile hinzugefügt werden:

--template:map <name of template>=<replacement XML config path>

--template:map preparers=empty

Beispiel:

<template-include name="preparers" default="empty" />

Der Verweis auf empty bezieht sich in diesem Fall auf die empty.xml-Konfiguration, die leer ist. Wir verwenden ihn als Referenz, um nichts zu ersetzen.

Der Pfad der XML-Konfigurationen kann absolut oder relativ zum Ordner res/config in den JAR-Ressourcen von Tradefed sein. Hier einige ihrer Standorte:

  • Tools/tradefederation/core/res/config
  • Tools/tradefederation/core/tests/res/config
  • Tools/tradedeferation/contrib/res/config

Beispieldefinition von „Einschließen“

<configuration description="Common base configuration for local runs with minimum overhead">
    <build_provider class="com.android.tradefed.build.BootstrapBuildProvider" />

    <include name="empty"/>
</configuration>

Einschließlich ist einfacher als Vorlagen, da sie keine Befehlszeilenargumente erfordern. wird die referenzierte XML-Datei im name-Tag direkt erweitert. Ähnlich wie bei Vorlagen kann der Pfad zur Konfiguration absolut oder relativ sein. Für includes haben wir trotzdem empfehlen, nur relative Pfade zu verwenden, da diese in Tradefed besser übertragbar 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.