Tradefed'in konfigürasyonları, yürütülecek testi ve yapılacak hazırlık/kurulum adımlarını açıklamak için bir XML yapısını takip eder.
Teorik olarak XML'de her şey tek bir komut için 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'i <configuration>
etiketleriyle sınırlandırılmıştır. Tradefed objects
kendi etiketlerinde tanımlanır, örneğin: build_provider
, target_preparer
, test
vb. Bireysel amaçları Mimari bölümünde daha ayrıntılı olarak açıklanmaktadır.
Her nesne, çalışma zamanında çözümlenen, class=
içinde tanımlanan nesneyle ilişkili Java sınıfına sahiptir; yani sınıfı içeren JAR dosyası çalışırken Tradefed Java sınıf yolunda olduğu sürece bulunacak ve çözülecektir.
Tradefed nesnelerinin siparişleri
Farklı etiketlerin sırası önemli değildir. Örneğin, build_provider
target_preparer
sonra belirtilmesi hiçbir fark yaratmaz. Test çağrısının akışı donanımın kendisi tarafından zorlanır, böylece onları her zaman doğru sırayla çağırır.
Aynı etikete sahip nesnelerin sırası önemlidir . Örneğin, tanımlanan iki target_preparer
nesnesi XML'deki tanım sırasına göre çağrılacaktır. Cihaz kurulumunun son durumunu değiştirebileceği için bunu anlamak önemlidir. Örneğin, yanıp sönme ve ardından bir apk yüklemek, bir apk yüklemek ve yanıp sönme ile aynı olmayacaktır çünkü yanıp sönme cihazı silecektir.