النماذج والعناصر التي يتم تضمينها في إعدادات مقايضة XML

إنّ إنشاء تنسيق 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/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. لن تكون المسارات المطلقة صالحة إذا تم نقل Tradefed إلى جهاز آخر.

الإعداد الخاطئ

في حال عدم ضبط الإعدادات بشكل صحيح، مثلاً عندما يتعذّر العثور على ملف XML البديل، سيُرسِل Tradefed ConfigurationException يتضمّن وصفًا لما يبدو أنّه غير متوفّر أو تم ضبط إعداداته بشكل غير صحيح.