Tradefed'in yapılandırmaları, çalıştırılacak testi ve yapılacak hazırlık/kurulum adımlarını açıklayan bir XML yapısı izler.
Teorik olarak, tek bir komut için XML'de her şey tanımlanabilir. Ancak pratikte, temel şablon XML dosyalarına sahip olmak ve bunları ekstra komut satırı parametreleriyle özelleştirmek daha pratiktir.
Yapı
<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>
Genel Tradefed XML, <configuration>
etiketleriyle ayrılmıştır. Tradefed
objects
kendi etiketlerinde tanımlanır (ör. build_provider
, target_preparer
, test
vb.). Bu etiketlerin ayrı ayrı amaçları Mimari bölümünde daha ayrıntılı olarak açıklanmaktadır.
Her nesnenin, class=
içinde tanımlanan ve çalışma zamanında çözülen nesneyle ilişkili bir Java sınıfı vardır. Dolayısıyla, sınıfı içeren JAR dosyası çalıştırıldığında Tradefed Java sınıf yolu üzerinde olduğu sürece sınıf bulunur ve çözülür.
Tradefed nesnelerinin siparişleri
Farklı etiketlerin sırası önemli değildir. Örneğin, target_preparer
sonrasında build_provider
değeri belirtilirse fark olmaz. Test çağrısının akışı, koşum takımı tarafından zorunlu kılındığından her zaman doğru sırada çağrılır.
Aynı etikete sahip nesnelerin sırası önemlidir. Örneğin, tanımlanan iki target_preparer
nesnesi, XML'deki tanımlama sırasına göre çağrılır. Cihaz kurulumunun son durumunu değiştirebileceği için bunu anlamak önemlidir. Örneğin, yanıp sönme işlemi cihazı temizleyeceğinden, bir apk'nin yanıp sönmesi, bir apk'nin yüklenmesi ve yanıp sönme işlemi ile aynı olmaz.