Şablonlar ve Tradefed XML yapılandırmasına dahil olanlar

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.