Template dan menyertakan dalam konfigurasi XML Tradefed

Membuat satu konfigurasi XML monolitik untuk menentukan pengujian tidak selalu praktis. Jika ingin menggunakan kembali sebagian penyiapan untuk menjalankan pengujian serupa, Anda akan dipaksa untuk menyalin dan mempertahankan dua file XML besar.

Di sinilah tag template dan include dalam definisi Konfigurasi XML Tradefed berguna. Tag ini memungkinkan Anda menetapkan placeholder dalam beberapa konfigurasi XML untuk menambahkan bagian dari konfigurasi XML lainnya.

Contoh definisi untuk template

<configuration description="Common base configuration for local runs with minimum overhead">
    <build_provider class="com.android.tradefed.build.BootstrapBuildProvider" />

    <template-include name="preparers" default="empty" />

    <template-include name="test" default="empty" />

    <template-include name="reporters" default="empty" />
</configuration>

Template adalah placeholder dengan name untuk mereferensikannya, dan kolom default opsional. Kolom default menentukan XML pengganti default yang harus digunakan.

Untuk mengganti template untuk konfigurasi tertentu, parameter perintah berikut harus ditambahkan ke command line:

--template:map <name of template>=<replacement XML config path>

--template:map preparers=empty

Contoh:

<template-include name="preparers" default="empty" />

Referensi empty dalam hal ini merujuk ke konfigurasi empty.xml yang tidak berisi apa pun; kami menggunakannya sebagai referensi untuk mengganti dengan tidak ada.

Jalur konfigurasi XML dapat bersifat absolut atau relatif terhadap folder res/config di dalam resource JAR Tradefed. Berikut beberapa lokasinya:

  • tools/tradefederation/core/res/config
  • tools/tradefederation/core/tests/res/config
  • tools/tradedeferation/contrib/res/config

Contoh definisi include

<configuration description="Common base configuration for local runs with minimum overhead">
    <build_provider class="com.android.tradefed.build.BootstrapBuildProvider" />

    <include name="empty"/>
</configuration>

Include lebih sederhana daripada Template karena tidak memerlukan argumen command line; include langsung memperluas XML yang direferensikan dalam tag name. Mirip dengan template, jalur ke konfigurasi dapat bersifat absolut atau relatif. Namun, untuk includes, sebaiknya gunakan hanya jalur relatif karena lebih portabel di Tradefed. Jalur absolut tidak akan valid jika Tradefed dipindahkan ke mesin lain.

Error konfigurasi

Jika terjadi error konfigurasi, seperti saat XML pengganti tidak dapat ditemukan, Tradefed akan menampilkan ConfigurationException dengan deskripsi tentang apa yang tampaknya hilang atau salah dikonfigurasi.