Tradefed XML yapılandırmasının üst düzey yapısı

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.