מבנה ברמה גבוהה של תצורת XML של Tradefed

התצורות של Tradefed עוקבות אחר מבנה XML כדי לתאר את הבדיקה שיש להפעיל ואת שלבי ההכנה/ההגדרה שיש לבצע.

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

מִבְנֶה

<configuration description="<description of the configuration>">
    <!-- A build provider that takes local device information -->
    <build_provider class="com.android.tradefed.build.BootstrapBuildProvider" />

    <!-- Some target preparation, disabled by default -->
    <target_preparer class="com.android.tradefed.targetprep.PreloadedClassesPreparer">
        <option name="disable" value="true" />
    </target_preparer>

    <!-- One test running some unit tests -->
    <test class="com.android.tradefed.testtype.HostTest">
        <option name="class" value="com.android.tradefed.build.BuildInfoTest" />
    </test>

    <!-- [OPTIONAL] -->
    <logger class="com.android.tradefed.log.FileLogger">
        <option name="log-level" value="VERBOSE" />
        <option name="log-level-display" value="VERBOSE" />
    </logger>

    <!-- [OPTIONAL] -->
    <log_saver class="com.android.tradefed.result.FileSystemLogSaver" />

    <!-- As many reporters as we want -->
    <result_reporter class="com.android.tradefed.result.ConsoleResultReporter" />
    <result_reporter class="com.android.tradefed.result.suite.SuiteResultReporter" />
    <result_reporter class="com.android.tradefed.result.MetricsXMLResultReporter"/>
</configuration>

ה-XML הכולל של Tradefed מופרד על ידי תגי <configuration> . Tradefed objects מוגדרים בתגים משלהם, למשל: build_provider , target_preparer , test וכו'. המטרות האישיות שלהם מתוארות ביתר פירוט בסעיף הארכיטקטורה .

לכל אובייקט יש את מחלקת Java המשויכת לאובייקט המוגדר ב- class= שנפתר בזמן ריצה; אז כל עוד קובץ ה-JAR המכיל את המחלקה נמצא ב-Tradefed Java classpath בעת הפעלה, הוא יימצא ויפתור.

הזמנות של חפצי Tradefed

הסדר של התגים השונים אינו משנה. לדוגמה, זה לא משנה אם build_provider מצוין אחרי target_preparer . זרימת הזמנת הבדיקה נאכפת על ידי הרתמה עצמה, כך שהיא תמיד תקרא להם בסדר הנכון.

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