Utworzenie jednej monolitycznej konfiguracji XML w celu zdefiniowania testu nie zawsze praktyczny. Jeśli chcesz ponownie wykorzystać część konfiguracji do przeprowadzenia podobnych testów, musieliby skopiować i utrzymywać 2 ogromne pliki XML.
Tutaj tagi template
i include
w konfiguracji XML Tradefed
może być bardzo przydatna. Umożliwiają one ustawianie zmiennych w niektórych plikach XML,
w celu dodania części 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, w których można się odwoływać do obiektów zastępczych (name
).
default
. Pole domyślne określa domyślny zastępczy kod XML, który
należy użyć funkcji.
Aby zastąpić szablon w danej konfiguracji, to polecenie Do wiersza poleceń należy dodać:
--template:map <name of template>=<replacement XML config path>
--template:map preparers=empty
Na przykład:
<template-include name="preparers" default="empty" />
Dokumentacja empty
w tym przypadku odnosi się do konfiguracji empty.xml
, która
nie zawiera niczego; wykorzystujemy go jako punkt odniesienia zastępując go niczym.
Ścieżka konfiguracji XML może być bezwzględna lub względna w stosunku do folderu res/config
w zasobach JAR Tradefed. Oto kilka z nich:
- narzędzia/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ń.
bezpośrednio rozwijają przywołany kod XML w tagu name
. Podobnie jak w przypadku szablonów,
ścieżka do konfiguracji może być bezwzględna lub względna. Nadal, przez includes
zalecamy używanie tylko ścieżek względnych, ponieważ są one bardziej przenośne w Tradefed.
Ścieżki bezwzględne nie byłyby prawidłowe, jeśli Tradefed zostanie przeniesione do innej maszyny.
Nieprawidłowa konfiguracja
W przypadku błędu konfiguracji, na przykład gdy nie można znaleźć nowego kodu XML,
Tradefed przesyła element ConfigurationException
z opisem tego, co wydaje się
może być niedostępny lub jest nieprawidłowo skonfigurowany.