Utworzenie jednej monolitycznej konfiguracji XML w celu zdefiniowania testu nie zawsze jest praktyczne. Jeśli chcesz ponownie wykorzystać część konfiguracji do przeprowadzenia podobnych testów, będziesz zmuszony skopiować i zachować dwa gigantyczne pliki XML.
W tym miejscu przydaje się template
i znaczniki include
w definicji konfiguracji Tradefed XML. Umożliwiają ustawienie symboli zastępczych w niektórych konfiguracjach 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 z name
wskazującą na nie i opcjonalnym polem default
. Pole domyślne definiuje domyślny zastępczy kod XML, który powinien zostać użyty.
Aby zamienić szablon dla danej konfiguracji należy w wierszu poleceń dodać następujący parametr komendy:
--template:map <name of template>=<replacement XML config path>
--template:map preparers=empty
Na przykład:
<template-include name="preparers" default="empty" />
empty
odwołanie w tym przypadku odnosi się do konfiguracji empty.xml
, która nic nie zawiera; używamy go jako odniesienia do zastępowania niczego .
Ścieżka konfiguracji XML może być bezwzględna lub względna do folderu res/config
w zasobach JAR Tradefed. Oto kilka ich lokalizacji:
- narzędzia/tradefederacja/core/res/config
- narzędzia/tradefederacja/core/tests/res/config
- narzędzia/tradedeferation/contrib/res/config
Przykładowa definicja zawiera
<configuration description="Common base configuration for local runs with minimum overhead">
<build_provider class="com.android.tradefed.build.BootstrapBuildProvider" />
<include name="empty"/>
</configuration>
Uwzględnienia są prostsze niż szablony, ponieważ nie wymagają argumentów wiersza poleceń; bezpośrednio rozwijają przywoływany kod XML w znaczniku name
. Podobnie jak w przypadku szablonów, ścieżka do konfiguracji może być bezwzględna lub względna. Mimo to w przypadku includes
zalecamy używanie wyłącznie ś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 przeniesiony na inną maszynę.
Błędna konfiguracja
W przypadku błędnej konfiguracji, na przykład gdy nie można znaleźć zastępczego pliku XML, Tradefed zgłosi wyjątek ConfigurationException
z opisem tego, czego wydaje się brakować lub źle skonfigurowany.