תבניות וכולל בתצורת XML של Tradefed

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

זה המקום שבו template ותגיות include בהגדרת תצורת XML של Tradefed שימושיות. הם מאפשרים לך להגדיר מצייני מיקום בתצורת 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 יכול להיות מוחלט או יחסי לתיקיית res/config בתוך משאבי ה-JAR של Tradefed. הנה כמה מהמיקומים שלהם:

  • tools/tradefederation/core/res/config
  • tools/tradefederation/core/tests/res/config
  • tools/tradeferation/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>

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

תצורה שגויה

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