Konfiguracje Tradefed mają strukturę XML opisującą test, który ma zostać uruchomiony oraz wykonać czynności związane z przygotowaniami/konfiguracją.
Teoretycznie wszystko można zdefiniować w pliku XML dla jednego polecenia. Ale w praktyk, lepiej jest mieć podstawowe pliki XML szablonu i dostosować używając dodatkowych parametrów wiersza poleceń.
Struktura
<configuration description="<description of the configuration>">
<!-- A build provider that takes local device information -->
<build_provider class="com.android.tradefed.build.BootstrapBuildProvider" />
<!-- Some target preparation, disabled by default -->
<target_preparer class="com.android.tradefed.targetprep.PreloadedClassesPreparer">
<option name="disable" value="true" />
</target_preparer>
<!-- One test running some unit tests -->
<test class="com.android.tradefed.testtype.HostTest">
<option name="class" value="com.android.tradefed.build.BuildInfoTest" />
</test>
<!-- [OPTIONAL] -->
<logger class="com.android.tradefed.log.FileLogger">
<option name="log-level" value="VERBOSE" />
<option name="log-level-display" value="VERBOSE" />
</logger>
<!-- [OPTIONAL] -->
<log_saver class="com.android.tradefed.result.FileSystemLogSaver" />
<!-- As many reporters as we want -->
<result_reporter class="com.android.tradefed.result.ConsoleResultReporter" />
<result_reporter class="com.android.tradefed.result.suite.SuiteResultReporter" />
<result_reporter class="com.android.tradefed.result.MetricsXMLResultReporter"/>
</configuration>
Ogólny plik XML Tradefed jest rozdzielany tagami <configuration>
. Tradefed
objects
są zdefiniowane w osobnych tagach, np. build_provider
,
target_preparer
, test
itp. Indywidualne cele ich działań zostały opisane bardziej
w architekturze.
.
Każdy obiekt ma klasę Java powiązaną z obiektem zdefiniowaną w class=
który jest usuwany w czasie działania; o ile plik JAR zawierający klasę jest
w ścieżce klasy Java Tradefed podczas uruchamiania zostanie znaleziony i rozwiązany.
Kolejność obiektów Tradefed
Kolejność różnych tagów nie ma znaczenia. Nie powoduje to na przykład
jeśli wartość build_provider
została określona po target_preparer
. Przepływ
Wywołanie testowe jest egzekwowane przez samą uprzęż, więc zawsze wywołuje
w odpowiedniej kolejności.
Kolejność obiektów z tym samym tagiem ma znaczenie. Na przykład dwa
Zdefiniowane obiekty (target_preparer
) będą wywoływane w kolejności definicji w
kod XML. Trzeba to zrozumieć, bo może to zmienić stan końcowy
konfiguracji urządzenia. Na przykład zainstalowanie i zainstalowanie pakietu apk nie powinno
To samo co instalowanie pakietu apk i flashowanie, ponieważ flashowanie wyczyści pamięć urządzenia.