Szablony i elementy uwzględnione w konfiguracji XML Tradefed

Utworzenie jednej monolitycznej konfiguracji XML w celu zdefiniowania testu nie zawsze jest praktyczne. Jeśli chcesz ponownie użyć części konfiguracji do przeprowadzenia podobnych testów, będziesz musiał skopiować 2 wielkie pliki XML i je aktualizować.

Dlatego przydaje się tu tagi template i include z definicji konfiguracji XML w Tradefed. Umożliwiają one ustawienie w pewnej konfiguracji XML symboli zastępczych, aby dodać część innej konfiguracji XML.

Przykładowa definicja szablonów

<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>

Szablony to obiekty zastępcze, które zawierają odwołanie do nich (name) i opcjonalne pole default. Pole domyślne definiuje domyślny kod XML zastępczy, którego należy użyć.

Aby zastąpić szablon w przypadku danej konfiguracji, do wiersza poleceń musisz dodać ten parametr polecenia:

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

--template:map preparers=empty

Na przykład:

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

W tym przypadku odwołanie empty odnosi się do konfiguracji empty.xml, która nie zawiera nic. Używamy jej jako odniesienia do zastąpienia wartości „nic”.

Ścieżka konfiguracji XML może być bezwzględna lub względna do folderu res/config w zasobach pliku JAR Tradefed. Oto kilka z nich:

  • tools/tradefederation/core/res/config
  • tools/tradefederation/core/tests/res/config
  • narzędzia/tradedeferation/contrib/res/config

Przykładowa definicja uwzględniania

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

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

Elementy dołączane są prostsze niż szablony, ponieważ nie wymagają argumentów wiersza poleceń, a przywołują bezpośrednio odniesienia XML w tagu name. Podobnie jak w przypadku szablonów ścieżka do konfiguracji może być bezwzględna lub względna. W przypadku includes zalecamy jednak używanie tylko ścieżek względnych, ponieważ są one bardziej przenośne w Tradefed. Ścieżki bezwzględne nie będą prawidłowe, jeśli Tradefed zostanie przeniesione do innej maszyny.

Nieprawidłowa konfiguracja

W przypadku nieprawidłowej konfiguracji, np. gdy nie można znaleźć pliku XML z wymianą, Tradefed wygeneruje błąd ConfigurationException z opisem tego, co wydaje się być nieobecne lub źle skonfigurowane.