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.