Tradefed XML yapılandırmasında şablonlar ve dahil edilenler

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.