Szablony i elementy uwzględnione w konfiguracji XML Tradefed

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.