Tradefed XML yapılandırmasındaki şablonlar ve içerikler

Bir testi tanımlamak için tek bir XML yapılandırması oluşturmak her zaman pratik değildir. Benzer testleri çalıştırmak için kurulumun bir kısmını yeniden kullanmak isterseniz, iki dev XML dosyasını kopyalayıp bakımını yapmak zorunda kalırsınız.

Tradefed XML Yapılandırma tanımındaki template ve etiketlerin include kullanışlı olduğu yer burasıdır. 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, onlara referans verecek bir name ve isteğe bağlı bir default alanı olan yer tutuculardır. Varsayılan alan, kullanılması gereken varsayılan değiştirme XML'sini tanımlar.

Belirli bir konfigürasyona ait şablonu değiştirmek için aşağıdaki komut parametresinin komut satırına eklenmesi gerekir:

--template:map <name of template>=<replacement XML config path>

--template:map preparers=empty

Örneğin:

<template-include name="preparers" default="empty" />

Bu durumda empty referans, hiçbir şey içermeyen empty.xml yapılandırmasına atıfta bulunur; Bunu hiçbir şeyle değiştirmek için referansımız olarak kullanırız.

XML yapılandırmalarının yolu mutlak olabilir veya Tradefed'in JAR kaynakları içindeki res/config klasörüne göreli olabilir. İşte konumlarından birkaçı:

  • araçlar/ticaret federasyonu/core/res/config
  • araçlar/ticaretfederasyonu/çekirdek/testler/res/config
  • araçlar/ticaret erteleme/katkı/res/config

İçeriğin ö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>

İçerikler, komut satırı bağımsız değişkenleri gerektirmediğinden Şablonlardan daha basittir; name etiketinde başvurulan XML'i doğrudan genişletirler. Şablonlara benzer şekilde yapılandırmanın yolu mutlak veya göreceli olabilir. Yine de, Tradefed'de daha taşınabilir olduklarından, includes için yalnızca göreceli yolları kullanmanızı öneririz. Tradefed'in başka bir makineye taşınması durumunda mutlak yollar geçerli olmayacaktır.

Yanlış yapılandırma

Değiştirilen XML'in bulunamaması gibi yanlış yapılandırma durumunda Tradefed, eksik veya yanlış yapılandırılmış görünen şeylerin açıklamasını içeren bir ConfigurationException oluşturacaktır.