Membuat satu konfigurasi XML monolitik untuk menentukan pengujian tidak selalu praktis. Jika ingin menggunakan kembali sebagian penyiapan untuk menjalankan pengujian serupa, Anda harus menyalin dan mengelola dua file XML besar.
Di sinilah tag template
dan include
dalam definisi Konfigurasi XML Tradefed berguna. Dengan demikian, Anda dapat menetapkan placeholder di beberapa konfigurasi XML untuk menambahkan bagian dari konfigurasi XML lain.
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 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 kasus ini merujuk pada konfigurasi empty.xml
yang
tidak berisi apa pun; kita 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 lokasi mereka:
- tools/tradefederation/core/res/config
- tools/tradefederation/core/tests/res/config
- tools/tradedeferation/contrib/res/config
Contoh definisi mencakup
<configuration description="Common base configuration for local runs with minimum overhead">
<build_provider class="com.android.tradefed.build.BootstrapBuildProvider" />
<include name="empty"/>
</configuration>
Sertakan lebih sederhana daripada Template karena tidak memerlukan argumen command line;
langsung memperluas XML yang dirujuk 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.
Kesalahan konfigurasi
Jika terjadi kesalahan konfigurasi, seperti saat XML pengganti tidak dapat ditemukan,
Tradefed akan menampilkan ConfigurationException
dengan deskripsi tentang apa yang tampaknya
kurang atau salah dikonfigurasi.