از 27 مارس 2025، توصیه می کنیم از android-latest-release
به جای aosp-main
برای ساختن و کمک به AOSP استفاده کنید. برای اطلاعات بیشتر، به تغییرات AOSP مراجعه کنید.
الگوها و شامل در پیکربندی Tradefed XML
با مجموعهها، منظم بمانید
ذخیره و طبقهبندی محتوا براساس اولویتهای شما.
ایجاد یک پیکربندی XML یکپارچه برای تعریف تست همیشه عملی نیست. اگر می خواهید از بخشی از تنظیمات برای اجرای آزمایش های مشابه استفاده مجدد کنید، مجبور خواهید بود دو فایل XML غول پیکر را کپی و نگهداری کنید.
اینجاست که template
و تگهای include
در تعریف Tradefed XML Configuration مفید هستند. آنها به شما این امکان را می دهند که متغیرهایی را در برخی از پیکربندی 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>
شامل ساده تر از Templates هستند زیرا به آرگومان های خط فرمان نیاز ندارند. آنها به طور مستقیم XML مرجع در تگ name
را گسترش می دهند. مشابه الگوها، مسیر پیکربندی می تواند مطلق یا نسبی باشد. با این حال، برای includes
، توصیه می کنیم فقط از مسیرهای نسبی استفاده کنید زیرا در Tradefed قابل حمل تر هستند. اگر Tradefed به ماشین دیگری منتقل شود، مسیرهای مطلق معتبر نیستند.
پیکربندی اشتباه
در صورت پیکربندی نادرست، مانند زمانی که XML جایگزین یافت نمیشود، Tradefed یک ConfigurationException
با شرح موارد گم شده یا اشتباه پیکربندی میکند.
محتوا و نمونه کدها در این صفحه مشمول پروانههای توصیفشده در پروانه محتوا هستند. جاوا و OpenJDK علامتهای تجاری یا علامتهای تجاری ثبتشده Oracle و/یا وابستههای آن هستند.
تاریخ آخرین بهروزرسانی 2025-07-29 بهوقت ساعت هماهنگ جهانی.
[[["درک آسان","easyToUnderstand","thumb-up"],["مشکلم را برطرف کرد","solvedMyProblem","thumb-up"],["غیره","otherUp","thumb-up"]],[["اطلاعاتی که نیاز دارم وجود ندارد","missingTheInformationINeed","thumb-down"],["بیشازحد پیچیده/ مراحل بسیار زیاد","tooComplicatedTooManySteps","thumb-down"],["قدیمی","outOfDate","thumb-down"],["مشکل ترجمه","translationIssue","thumb-down"],["مشکل کد / نمونهها","samplesCodeIssue","thumb-down"],["غیره","otherDown","thumb-down"]],["تاریخ آخرین بهروزرسانی 2025-07-29 بهوقت ساعت هماهنگ جهانی."],[],[],null,["# Templates and includes in Tradefed XML configuration\n\nCreating one monolithic XML configuration to define a test is not always\npractical. If you want to re-use part of the setup to run similar tests, you\nwould be forced to copy and maintain two giant XML files.\n\nThis is where `template` and `include` tags in Tradefed XML Configuration\ndefinition come in handy. They allow you to set placeholders in some XML\nconfiguration to add part of another XML configuration.\n\nExample definition for templates\n--------------------------------\n\n \u003cconfiguration description=\"Common base configuration for local runs with minimum overhead\"\u003e\n \u003cbuild_provider class=\"com.android.tradefed.build.BootstrapBuildProvider\" /\u003e\n\n \u003ctemplate-include name=\"preparers\" default=\"empty\" /\u003e\n\n \u003ctemplate-include name=\"test\" default=\"empty\" /\u003e\n\n \u003ctemplate-include name=\"reporters\" default=\"empty\" /\u003e\n \u003c/configuration\u003e\n\nTemplates are placeholders with a `name` to reference them, and an optional\n`default` field. The default field defines the default replacement XML that\nshould be used.\n\nIn order to replace a template for a given configuration, the following command\nparameter needs to be added to the command line: \n\n --template:map \u003cname of template\u003e=\u003creplacement XML config path\u003e\n\n --template:map preparers=empty\n\nFor example: \n\n \u003ctemplate-include name=\"preparers\" default=\"empty\" /\u003e\n\nThe `empty` reference in this case refers to the `empty.xml` configuration that\ncontains nothing; we use it as our reference to *replace with nothing*.\n\nThe path of XML configs can be absolute or relative to the `res/config` folder\ninside Tradefed's JAR resources. Here are a few of their locations:\n\n- tools/tradefederation/core/res/config\n- tools/tradefederation/core/tests/res/config\n- tools/tradedeferation/contrib/res/config\n\nExample definition of includes\n------------------------------\n\n \u003cconfiguration description=\"Common base configuration for local runs with minimum overhead\"\u003e\n \u003cbuild_provider class=\"com.android.tradefed.build.BootstrapBuildProvider\" /\u003e\n\n \u003cinclude name=\"empty\"/\u003e\n \u003c/configuration\u003e\n\nIncludes are simpler than Templates as they require no command line arguments;\nthey directly expand the referenced XML in the `name` tag. Similar to templates,\nthe path to the config can be absolute or relative. Still, for `includes` we\nrecommend using only relative paths as they are more portable in Tradefed.\nAbsolute paths would not be valid if Tradefed is moved to another machine.\n\nMisconfiguration\n----------------\n\nIn case of misconfiguration, such as when the replacement XML cannot be found,\nTradefed will throw a `ConfigurationException` with description of what seems to\nbe missing or misconfigured."]]