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. Başka bir XML yapılandırmasının bir bölümü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'sini 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
Örneğin:
<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
- tools/tradefederation/core/tests/res/config
- tools/tradedeferation/contrib/res/config
includes işlevinin örnek tanımı
<configuration description="Common base configuration for local runs with minimum overhead">
<build_provider class="com.android.tradefed.build.BootstrapBuildProvider" />
<include name="empty"/>
</configuration>
Dahil etme işlemleri, komut satırı bağımsız değişkenleri gerektirmediğinden şablonlardan daha basittir; name
etiketinde referans verilen XML'i doğrudan genişletir. Şablonlara benzer şekilde, yapılandırmanın yolu mutlak veya göreli olabilir. 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
Yanlış yapılandırma durumunda (ör. değişim XML'si bulunamadığında) Tradefed, eksik veya yanlış yapılandırılmış öğelerin açıklamasını içeren bir ConfigurationException
oluşturur.