Membuat satu konfigurasi XML monolitik untuk menentukan pengujian tidak selalu praktis. Jika Anda ingin menggunakan kembali bagian penyiapan untuk menjalankan pengujian serupa, Anda akan terpaksa menyalin dan memelihara dua file XML raksasa.
Di sinilah tag template
dan include
pada Konfigurasi XML yang diperdagangkan
akan sangat membantu. Memungkinkan Anda mengatur placeholder dalam beberapa XML
konfigurasi 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 parameter opsional
Kolom default
. Bidang {i>default<i} menentukan XML pengganti {i>default<i} yang
sebaiknya digunakan.
Untuk mengganti template bagi konfigurasi tertentu, perintah berikut perlu 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 mengacu pada konfigurasi empty.xml
yang
tidak berisi apa pun; kami menggunakannya sebagai referensi untuk menggantikan dengan apa pun.
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 penyertaan
<configuration description="Common base configuration for local runs with minimum overhead">
<build_provider class="com.android.tradefed.build.BootstrapBuildProvider" />
<include name="empty"/>
</configuration>
Menyertakan lebih sederhana daripada Template karena tidak memerlukan argumen command line;
elemen ini langsung memperluas XML yang direferensikan dalam tag name
. Serupa dengan {i>template<i},
jalur ke konfigurasi bisa mutlak atau relatif. Namun, selama includes
kami
merekomendasikan agar hanya menggunakan jalur relatif karena lebih portabel di Tradefed.
Jalur absolut tidak akan valid jika Tradefed dipindahkan ke mesin lain.
Kesalahan konfigurasi
Jika terjadi kesalahan konfigurasi, seperti saat XML pengganti tidak dapat ditemukan,
Tradefed akan menampilkan ConfigurationException
dengan deskripsi yang tampaknya
hilang atau salah dikonfigurasi.