إنّ إنشاء تنسيق 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
يتضمّن وصفًا لما يبدو أنّه
غير متوفّر أو تم ضبط إعداداته بشكل غير صحيح.