Bir testi tanımlamak için tek bir monolitik XML yapılandırması oluşturmak her zaman pratik değildir. Kurulumun bir kısmını benzer testler çalıştırmak için yeniden kullanmak isterseniz iki büyük XML dosyasını kopyalayıp korumak zorunda kalırsınız.
Bu noktada, Tradefed XML yapılandırma tanımındaki template
ve include
etiketleri kullanışlı olur. Bu özellikler, 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, name
ile referans verilen yer tutucular ve isteğe bağlı bir default
alanıdır. Varsayılan alan, kullanılması gereken varsayılan değiştirme XML'sini tanımlar.
Belirli bir yapılandırmanın şablonunu değiştirmek için 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 örnekteki empty
referansı, hiçbir şey içermeyen empty.xml
yapılandırmasını ifade eder. Bu referansı, hiçbir şeyle değiştirmek için 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 merkezlerden bazıları şunlardır:
- tools/tradefederation/core/res/config
- tools/tradefederation/core/tests/res/config
- tools/tradedeferation/contrib/res/config
Includes 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>
Dahil etme işlemleri, komut satırı bağımsız değişkenleri gerektirmediğinden şablonlardan daha basittir. Bunlar, name
etiketindeki referans verilen XML'yi doğrudan genişletir. Şablonlara benzer şekilde, yapılandırmanın yolu mutlak veya göreceli olabilir. Bununla birlikte, includes
için yalnızca göreli yolların kullanılmasını öneririz. Çünkü bunlar Tradefed'de daha taşınabilirdir.
Tradefed başka bir makineye taşınırsa mutlak yollar geçerli olmaz.
Yanlış yapılandırma
Değiştirme XML'si bulunamadığında olduğu gibi yanlış yapılandırma durumunda Tradefed, eksik veya yanlış yapılandırılmış gibi görünen öğelerin açıklamasıyla birlikte bir ConfigurationException
oluşturur.