תבניות וקבצים נכללים בהגדרת ה-XML של Tradefed

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

כאן נכנסים לתמונה התגים template ו-include בהגדרת התצורה של Tradefed 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>

תבניות הן placeholder עם 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 של TradeFedEx. ריכזנו כאן כמה מהמיקומים שלהם:

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

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

הגדרה שגויה

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