מבנה כללי של הגדרת XML ב-Tradefed

ההגדרות של transactionFed מופיעות במבנה 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 הכולל שכולל נתונים מסחריים מופרד באמצעות תגי <configuration>. Tradefed objects מוגדרים בתגים משלהם, לדוגמה: build_provider,‏target_preparer,‏test וכו'. המטרות שלהם מתוארות בפירוט בקטע ארכיטקטורה.

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

סידור של אובייקטים שמזינים במסחר

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

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