Struktur tingkat tinggi konfigurasi XML Tradefed

Konfigurasi Tradefed mengikuti struktur XML untuk menjelaskan pengujian yang akan dijalankan dan langkah-langkah persiapan/penyiapan yang harus dilakukan.

Secara teori, semuanya dapat ditentukan dalam XML untuk satu perintah. Namun saat akan lebih praktis jika memiliki file XML template dasar dan dengan parameter baris perintah tambahan.

Struktur

<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>

Keseluruhan XML yang diperdagangkan dibatasi oleh tag <configuration>. Tradefed objects ditentukan dalam tagnya sendiri, misalnya: build_provider, target_preparer, test, dll. Tujuannya masing-masing dijelaskan lebih lanjut di Arsitektur bagian.

Setiap objek memiliki class Java yang terkait dengan objek yang ditentukan di class= yang diselesaikan saat runtime; selama file JAR yang berisi kelas di classpath Tradefed Java saat berjalan, itu akan ditemukan dan diselesaikan.

Pesanan objek yang diperdagangkan

Urutan tag yang berbeda tidak menjadi masalah. Misalnya, tidak perbedaan jika build_provider ditentukan setelah target_preparer. Alur dari pemanggilan pengujian ditegakkan oleh harness itu sendiri, sehingga akan selalu memanggil mereka dalam urutan yang benar.

Urutan objek dengan tag yang sama sangat penting. Misalnya, dua Objek target_preparer yang ditentukan akan dipanggil sesuai urutan definisinya dalam XML. Penting untuk dipahami karena hal ini dapat mengubah status akhir dalam pengaturan perangkat. Misalnya, mem-flash lalu menginstal apk tidak akan menjadi sama seperti menginstal apk dan melakukan flash karena melakukan flash akan menghapus total perangkat.