بنية عالية المستوى لإعداد XML التجاري

تتبع إعدادات 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 التجاري الشامل بعلامات <configuration>. يتم تحديد Tradefed objects في العلامات الخاصة به، مثل: build_provider أو target_preparer وtest وغيرهما. وقد تم توضيح أغراضهما الفردية في المزيد من التفاصيل. التفاصيل في بنية التطبيق .

يتضمّن كل كائن فئة Java المرتبطة بالكائن المحدّد في class=. يتم حلّه في وقت التشغيل ما دام ملف JAR الذي يحتوي على الفئة في مسار فئة Tradefed Java عند التشغيل، سيتم العثور عليه وحله.

ترتيب العناصر المتداولة

ولا يهم ترتيب العلامات المختلفة. على سبيل المثال، لا يجعل الفرق إذا تم تحديد build_provider بعد target_preparer. تدفق يتم فرض استدعاء الاختبار بواسطة الحزام نفسه، لذا سيطلب دائمًا بالترتيب الصحيح.

إنّ ترتيب الكائنات ذات العلامة نفسها مهم. على سبيل المثال، اثنان سيتم استدعاء target_preparer عناصر معرّفة بترتيب تعريفها في بتنسيق XML. من المهم فهم ذلك لأنه قد يغير حالة نهاية لإعداد الجهاز. على سبيل المثال، لن يكون الوميض ثم تثبيت حزمة APK هو يماثل تثبيت ملف APK ووميض لأن هذا البرنامج قد يؤدّي إلى حجب بيانات الجهاز.