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

Tradefed'in yapılandırmaları, çalıştırılacak testi ve yapılacak hazırlık/kurulum adımlarını açıklamak için bir XML yapısını izler.

Teorik olarak, tek bir komut için her şey XML'de tanımlanabilir. Ancak uygulamada, temel şablon XML dosyaları kullanmak ve bunları ek 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'si <configuration> etiketleriyle sınırlandırılır. Tradefed objects kendi etiketlerinde tanımlanır. Örneğin: build_provider, target_preparer, test vb. Bunların amaçları Mimari bölümünde daha ayrıntılı olarak açıklanmıştır.

Her nesnenin, çalışma zamanında çözümlenen class= içinde tanımlanmış nesneyle ilişkili Java sınıfı vardır. Dolayısıyla, sınıfı içeren JAR dosyası çalıştırılırken Tradefed Java sınıf yolundaysa bulunur ve çözümlenir.

Tradefed nesnelerinin sırası

Farklı etiketlerin sırası önemli değildir. Örneğin, build_provider öğesinin target_preparer öğesinden sonra belirtilmesi herhangi bir fark yaratmaz. Test çağırma 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'de tanımlanma sırasına göre çağrılır. Cihaz kurulumunun son durumunu değiştirebileceği için bu durumu anlamak önemlidir. Örneğin, APK'yı yükleyip ardından yükleme yapmak, APK'yı yükleyip yükleme yapmak ile aynı şey değildir. Çünkü yükleme işlemi cihazı temizler.