टेम्प्लेट और ट्रेडफेड XML कॉन्फ़िगरेशन में शामिल हैं

किसी परीक्षण को परिभाषित करने के लिए एक अखंड XML कॉन्फ़िगरेशन बनाना हमेशा व्यावहारिक नहीं होता है। यदि आप समान परीक्षण चलाने के लिए सेटअप के हिस्से का पुन: उपयोग करना चाहते हैं, तो आपको दो विशाल XML फ़ाइलों की प्रतिलिपि बनाने और बनाए रखने के लिए मजबूर किया जाएगा।

यहीं पर template और ट्रेडफेड XML कॉन्फ़िगरेशन परिभाषा में include टैग काम में आते हैं। वे आपको किसी अन्य XML कॉन्फ़िगरेशन का हिस्सा जोड़ने के लिए कुछ XML कॉन्फ़िगरेशन में प्लेसहोल्डर सेट करने की अनुमति देते हैं।

टेम्प्लेट के लिए उदाहरण परिभाषा

<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>

टेम्प्लेट प्लेसहोल्डर होते हैं जिनके पास संदर्भ के लिए एक name और एक वैकल्पिक default फ़ील्ड होता है। डिफ़ॉल्ट फ़ील्ड डिफ़ॉल्ट प्रतिस्थापन XML को परिभाषित करता है जिसका उपयोग किया जाना चाहिए।

किसी दिए गए कॉन्फ़िगरेशन के लिए टेम्पलेट को बदलने के लिए, निम्न कमांड पैरामीटर को कमांड लाइन में जोड़ने की आवश्यकता है:

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

--template:map preparers=empty

उदाहरण के लिए:

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

इस मामले में empty संदर्भ empty.xml कॉन्फ़िगरेशन को संदर्भित करता है जिसमें कुछ भी नहीं है; हम इसे कुछ नहीं से बदलने के लिए अपने संदर्भ के रूप में उपयोग करते हैं।

XML कॉन्फ़िगरेशन का पथ ट्रेडफेड के JAR संसाधनों के अंदर res/config फ़ोल्डर से पूर्ण या सापेक्ष हो सकता है। यहां उनके कुछ स्थान दिए गए हैं:

  • टूल्स/ट्रेडफेडरेशन/कोर/रेस/कॉन्फ़िगरेशन
  • टूल्स/ट्रेडफेडरेशन/कोर/टेस्ट/रेस/कॉन्फ़िगरेशन
  • टूल्स/ट्रेडडेफरेशन/योगदान/रेस/कॉन्फ़िगरेशन

शामिल की उदाहरण परिभाषा

<configuration description="Common base configuration for local runs with minimum overhead">
    <build_provider class="com.android.tradefed.build.BootstrapBuildProvider" />

    <include name="empty"/>
</configuration>

टेम्प्लेट की तुलना में शामिल करना अधिक सरल है क्योंकि उन्हें किसी कमांड लाइन तर्क की आवश्यकता नहीं होती है; वे सीधे name टैग में संदर्भित XML का विस्तार करते हैं। टेम्प्लेट के समान, कॉन्फ़िगरेशन का पथ पूर्ण या सापेक्ष हो सकता है। फिर भी, includes के लिए हम केवल सापेक्ष पथों का उपयोग करने की अनुशंसा करते हैं क्योंकि वे ट्रेडफेड में अधिक पोर्टेबल हैं। यदि ट्रेडफेड को किसी अन्य मशीन पर ले जाया जाता है तो पूर्ण पथ मान्य नहीं होंगे।

गलत कॉन्फ़िगरेशन

गलत कॉन्फ़िगरेशन के मामले में, जैसे कि जब प्रतिस्थापन एक्सएमएल नहीं मिल पाता है, तो ट्रेडफेड एक ConfigurationException फेंक देगा जिसमें यह वर्णन होगा कि क्या गायब है या गलत कॉन्फ़िगर किया गया है।