از 27 مارس 2025، توصیه می کنیم از android-latest-release
به جای aosp-main
برای ساختن و کمک به AOSP استفاده کنید. برای اطلاعات بیشتر، به تغییرات AOSP مراجعه کنید.
نوشتن تست پوسته در فدراسیون تجارت، نوشتن تست پوسته در فدراسیون تجارت
با مجموعهها، منظم بمانید
ذخیره و طبقهبندی محتوا براساس اولویتهای شما.
در این صفحه نحوه نوشتن تست پوسته توضیح داده شده است. اگر آزمایشی را می توان با اسکریپت پوسته انجام داد، می توانید آن را با ExecutableHostTest
اجرا کنید. ExecutableHostTest
از فیلتر کردن تست و اشتراک گذاری تست پشتیبانی می کند.
یک تست پوسته بنویسید
اسکریپت پوسته اصلی شما روی هاست اجرا می شود. اسکریپت ها یا باینری های دیگر برای اجرا در دستگاه و فایل های داده مورد نیاز باید ابتدا به دستگاه فشار داده شوند. این را می توان به عنوان بخشی از اسکریپت اصلی یا با استفاده از PushFilePreparer
انجام داد.
اگر تست دارای ماژول های باینری دستگاه است که باید در کنار تست نصب شوند، آنها را با ویژگی data_device_bins
مشخص کنید.
sh_test {
name: "module-name",
...
data_device_bins: ["target-name"],
}
Shell test ziptool-tests
چنین مثالی است.
نتیجه آزمون برای هر آزمون بر اساس وضعیت خروج از اسکریپت اصلی شما است. در صورتی که per-binary-timeout
مشخص شده باشد، یک آزمایش میتواند به پایان برسد.
یک تست پوسته را پیکربندی کنید
در پیکربندی Tradefed XML، تست های پوسته از طریق اجرا کننده ExecutableHostTest
اجرا می شوند.
<test class="com.android.tradefed.testtype.binary.ExecutableHostTest" >
<option name="binary" value="your-test-script.sh" />
<option name="relative-path-execution" value="true" />
<option name="per-binary-timeout" value="15m" />
</test>
اسکریپت اصلی تست را به عنوان مقدار گزینه binary
تنظیم کنید. سایر گزینه های ExecutableHostTest
را بررسی کنید.
اگر اسکریپت به حقوق ریشه نیاز دارد، RootTargetPreparer
به پیکربندی اضافه کنید.
محتوا و نمونه کدها در این صفحه مشمول پروانههای توصیفشده در پروانه محتوا هستند. جاوا و 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,["# Write a shell test in Trade Federation\n\nThis page describes how to write a shell test. If a test can be done with a\nshell script, you can run it with [`ExecutableHostTest`](https://android.googlesource.com/platform/tools/tradefederation/+/refs/heads/android16-release/test_framework/com/android/tradefed/testtype/binary/ExecutableHostTest.java). `ExecutableHostTest` supports test filtering and\ntest sharding.\n\nWrite a shell test\n------------------\n\nYour main shell script runs on the host. Other scripts or binaries to run on\nthe device and the data files required must be pushed to the device first.\nThis can be done as part of the main script or using [`PushFilePreparer`](https://cs.android.com/android/platform/superproject/+/android-latest-release:tools/tradefederation/core/test_framework/com/android/tradefed/targetprep/PushFilePreparer.java?q=PushFilePreparer).\n\nIf the test has device binary modules that should be installed alongside the\ntest, specify them with [`data_device_bins`](https://ci.android.com/builds/submitted/6873301/linux/latest/view/sh.html#sh_test.data_device_bins)\nproperty. \n\n sh_test {\n name: \"module-name\",\n ...\n data_device_bins: [\"target-name\"],\n }\n\nShell test [`ziptool-tests`](https://cs.android.com/android/platform/superproject/+/android-latest-release:system/libziparchive/Android.bp?q=ziptool-tests)\nis such an example.\n\nThe test result for each test is based on the exit status of your main script.\nA test can timeout if `per-binary-timeout` has been specified.\n\nConfigure a shell test\n----------------------\n\nIn Tradefed XML configuration, shell tests are run through the\n`ExecutableHostTest` runner. \n\n \u003ctest class=\"com.android.tradefed.testtype.binary.ExecutableHostTest\" \u003e\n \u003coption name=\"binary\" value=\"your-test-script.sh\" /\u003e\n \u003coption name=\"relative-path-execution\" value=\"true\" /\u003e\n \u003coption name=\"per-binary-timeout\" value=\"15m\" /\u003e\n \u003c/test\u003e\n\nSet the main script for the test as the value of the `binary` option. Check out\nother `ExecutableHostTest` options.\n\nIf the script requires root privilege, add [`RootTargetPreparer`](https://cs.android.com/android/platform/superproject/+/android-latest-release:tools/tradefederation/core/test_framework/com/android/tradefed/targetprep/RootTargetPreparer.java) to the configuration."]]