از 27 مارس 2025، توصیه می کنیم از android-latest-release
به جای aosp-main
برای ساختن و کمک به AOSP استفاده کنید. برای اطلاعات بیشتر، به تغییرات AOSP مراجعه کنید.
از کنترل کننده های ماژول استفاده کنید
با مجموعهها، منظم بمانید
ذخیره و طبقهبندی محتوا براساس اولویتهای شما.
هر ماژول مجموعه (تعریف شده توسط AndroidTest.xml
) می تواند حاوی یک شی module_controller
خاص باشد که می تواند برخی از رفتار ماژول را تغییر دهد:
این که آیا ماژول بر اساس برخی شرایط اجرا شود یا نه
با پیاده سازی BaseModuleController و اضافه کردن آن به AndroidTest.xml
به این صورت:
<object type="module_controller" class="com.android.tradefed.testtype.suite.module.<NAME>" />
کنترلر ماژول برای تعیین اینکه آیا ماژول باید اجرا شود یا نه، بر اساس public abstract RunStrategy shouldRun(IInvocationContext context);
اجرا
آیا برای جمع آوری برخی از سیاهههای مربوط یا نه در شکست
هنگام اجرای یک مجموعه کامل، میتوانید در سطح مجموعه درخواست جمعآوری برخی از گزارشهای مربوط به خرابیها (عکس از صفحه، باگرپورت، logcat) را داشته باشید. اما برای برخی از ماژول ها، یک گزارش خاص درخواست شده ممکن است ارزشی نداشته باشد و صرفاً زمان را برای جمع آوری تلف کند. در آن شرایط، یک ماژول میتواند به صراحت مشخص کند که به کدام گزارشها علاقه دارد:
<object type="module_controller"
class="com.android.tradefed.testtype.suite.module.TestFailureModuleController">
<option name="screenshot-on-failure" value="<true OR false>" />
<option name="bugreportz-on-failure" value="<true OR false>" />
<option name="logcat-on-failure" value="<true OR false>" />
</object>
توجه: اجرای کنترلرها باید در صورت امکان عمومی باشد تا قابلیت استفاده مجدد را به حداکثر برساند. و پرش از یک ماژول بر اساس شرایط آن باید توسط صاحب ماژول بررسی شود تا تأیید شود که پرش از یک ماژول رفتار مناسب برای آنهاست.
محتوا و نمونه کدها در این صفحه مشمول پروانههای توصیفشده در پروانه محتوا هستند. جاوا و 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,["# Employ module controllers\n\nEach suite module (defined by `AndroidTest.xml`) can contain a special\n`module_controller` object that can alter some behavior of the module:\n\nWhether to run the module or not based on some conditions\n---------------------------------------------------------\n\nBy implementing [BaseModuleController](https://android.googlesource.com/platform/tools/tradefederation/+/refs/heads/android16-release/src/com/android/tradefed/testtype/suite/module/BaseModuleController.java)\nand adding it to the `AndroidTest.xml` like this: \n\n \u003cobject type=\"module_controller\" class=\"com.android.tradefed.testtype.suite.module.\u003cNAME\u003e\" /\u003e\n\nThe module controller will be used to determine whether the module should run\nor not, based on the\n`public abstract RunStrategy shouldRun(IInvocationContext context);`\nimplementation.\n\nWhether to collect some logs or not on failures\n-----------------------------------------------\n\nWhen running a full suite, it's possible to request at the suite level the\ncollection of some logs on failures (screenshot, bugreport, logcat). But for\nsome modules, a particular log requested might not have any value and will\nsimply waste time to be collected. In that situation, a module can explicitly\nspecify which logs they are interested in: \n\n \u003cobject type=\"module_controller\"\n class=\"com.android.tradefed.testtype.suite.module.TestFailureModuleController\"\u003e\n \u003coption name=\"screenshot-on-failure\" value=\"\u003ctrue OR false\u003e\" /\u003e\n \u003coption name=\"bugreportz-on-failure\" value=\"\u003ctrue OR false\u003e\" /\u003e\n \u003coption name=\"logcat-on-failure\" value=\"\u003ctrue OR false\u003e\" /\u003e\n \u003c/object\u003e\n\nNOTE: Implementation of controllers should be generic if possible in order to\nmaximize re-usability. And skipping a module based on its condition should\nbe reviewed by the module owner to get the approval that skipping a module is\nthe proper behavior for them."]]