Template dan disertakan dalam konfigurasi XML Tradefed

Membuat satu konfigurasi XML monolitik untuk mendefinisikan 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 definisi akan berguna. Fungsi ini memungkinkan Anda untuk menetapkan 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 lokasi mereka:

  • 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 komputer 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.