תבניות וכוללות תצורת XML של נתונים מסחריים

לא תמיד יצירת תצורת XML מונוליתית אחת כדי להגדיר בדיקה פרקטי. כדי להשתמש שוב בחלק מתהליך ההגדרה כדי להריץ בדיקות דומות, שהוא יאלץ להעתיק ולתחזק שני קובצי XML ענקיים.

כאן נמצאים התגים template ו-include בתצורת XML שעברה מסחר אלקטרוני מאוד שימושיות. הם מאפשרים להגדיר placeholders בחלק מה-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>

התבניות הן placeholders עם הפניה אל 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 יכול להיות מוחלט או יחסי לתיקייה res/config בתוך משאבי ה-JAR של TradeFederal. אלה כמה מהמיקומים שלהם:

  • כלים/tradefederation/core/res/config
  • כלים/tradefederation/core/tests/res/config
  • כלים/tradedeferation/contrib/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>

ההחרגות פשוטות יותר מ-Templates כי לא נדרשים להן ארגומנטים בשורת הפקודה, הן מרחיבות ישירות את ה-XML שיש אליו הפניה בתג name. בדומה לתבניות, הנתיב להגדרה יכול להיות מוחלט או יחסי. עדיין, עבור includes מומלץ להשתמש רק בנתיבים יחסיים, כי הם ניידים יותר ב-TrendF. נתיבים מוחלטים לא יהיו חוקיים אם מערכת Tradified תועבר למכונה אחרת.

הגדרה שגויה

במקרה של הגדרה שגויה, למשל כשלא ניתן למצוא את ה-XML החלופי, האירוע כולל טריגר של ConfigurationException עם תיאור של מה שנראה כמו שהוא יהיו חסרות או מוגדרות באופן שגוי.