Bir testi tanımlamak için tek bir monolitik XML yapılandırması oluşturmak her zaman pratik değildir. Benzer testler çalıştırmak için kurulumun bir kısmını yeniden kullanmak isterseniz iki dev XML dosyasını kopyalayıp yönetmeniz gerekir.
Bu noktada Tradefed XML yapılandırma tanımındaki template
ve include
etiketleri işe yarar. Bunlar, başka bir XML yapılandırmasının bir kısmını eklemek için bazı XML
yapılandırmalarında yer tutucular ayarlamanıza olanak tanır.
Şablonlar için örnek tanım
<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>
Şablonlar, referans olarak kullanılacak bir name
ve isteğe bağlı bir default
alanına sahip yer tutuculardır. Varsayılan alan, kullanılması gereken varsayılan değiştirme XML'ini tanımlar.
Belirli bir yapılandırma için bir şablonu değiştirmek amacıyla komut satırına aşağıdaki komut parametresinin eklenmesi gerekir:
--template:map <name of template>=<replacement XML config path>
--template:map preparers=empty
Örnek:
<template-include name="preparers" default="empty" />
Bu durumdaki empty
referansı, hiçbir şey içermeyen empty.xml
yapılandırmasını ifade eder. Hiçbir şeyle değiştirme işlemi için referans olarak bunu kullanırız.
XML yapılandırmalarının yolu, Tradefed'in JAR kaynaklarındaki res/config
klasörüne göre mutlak veya göreli olabilir. Bu konumlardan bazıları şunlardır:
- tools/tradefederation/core/res/config
- araçlar/tradefederasyon/çekirdek/testler/res/config
- Tools/tradedeferation/contrib/res/config
İçerir kelimesinin tanımına örnek
<configuration description="Common base configuration for local runs with minimum overhead">
<build_provider class="com.android.tradefed.build.BootstrapBuildProvider" />
<include name="empty"/>
</configuration>
İçerikler, komut satırı bağımsız değişkeni gerektirmediğinden Şablonlar'dan daha basittir; başvurulan XML'i doğrudan name
etiketinde genişletir. Şablonlara benzer şekilde, yapılandırma yolunun mutlak veya göreli olması mümkündür. Yine de includes
için Tradefed'de daha taşınabilir olduklarından yalnızca göreli yollar kullanmanızı öneririz.
Tradefed başka bir makineye taşınırsa mutlak yollar geçerli olmaz.
Yanlış yapılandırma
Trafiğe eklenen XML'nin bulunamadığı durumlarda, örneğin yanlış yapılandırma olması durumunda
Tradefed, eksik veya yanlış yapılandırılmış görünen öğelerin açıklamasını içeren bir ConfigurationException
gönderir.