Android Studio for Platform (ASfP) با atest و واحدهای آزمایش Soong ادغام میشود تا بتوانید آزمایشهای پلاتفرم را در ماشین میزبان Linux،
دستگاه متصل، یا دستگاه مجازی Cuttlefish از IDE اجرا و اشکالزدایی کنید.
پیشنیازها
- پروژه ASfP پیکربندیشده با تسویهحساب AOSP و هدف
lunchرا باز کنید. - برای آزمایشهای دستگاه، دستگاه فیزیکی را متصل کنید یا دستگاه مجازی Cuttlefish را که ساختار منطبق دارد راهاندازی کنید.
اجرا و اشکالزدایی کردن آزمایشها
میتوانید آزمایشهای پلاتفرم و جلسات اشکالزدایی را از چند مکان در ASfP راهاندازی کنید:
Android.bpهدف آزمایشی: فایلAndroid.bpرا باز کنید و در کنار هر واحد آزمایشی (*_testیا*_test_host)، روی اجرا در کنار کلیک کنید:- اجرا: برای همه انواع واحد آزمایشی Soong دردسترس است (
android_test،java_test_host،cc_test،rust_test،python_test،sh_test، وandroid_robolectric_test). - عیبیابی: برای
android_testواحد دردسترس است (بااستفاده ازatest --wait-for-debuggerبه عیبیاب Java پیوست شده است) و واحدهای آزمایش C++ یا Rust (cc_test،cc_test_host،rust_test، وrust_test_host، تحت عیبیاب LLDB داخلی ASfP راهاندازی شده است).
- اجرا: برای همه انواع واحد آزمایشی Soong دردسترس است (
- نمادهای حاشیه فایل منبع: روی اجرا کردن در کنار کلاس آزمایشی یا
@Testروش در کد منبع کلیک کنید تا آن آزمون خاص را اجرا یا اشکالزدایی کنید. - منو زمینهای کلیک راست: روی فایل، کلاس، روش، یا
Android.bpواحد آزمایشی کلیک راست کنید و اجرا یا عیبیابی را انتخاب کنید. - عامل داخلی (هوش مصنوعی در Android Studio): در پنجره ابزار عامل، «عامل داخلی» میتواند
atestهدف را برای تأیید تغییرات پساز ویرایش کد اجرا کند. - پایانه یکپارچه: برای اجرای مستقیم دستورات
atest، View (نما) > Tool Windows (پنجرههای ابزار) > Terminal (پایانه) را باز کنید.
پیکربندی و اشکالزدایی آزمایش هوشمند
وقتی آزمایشی را از کنارنویس یا منوِ زمینهای راهاندازی میکنید، ASfP پیکربندی اجرای آزمایش Soong را بااستفاده از گراف واحد Android.bp شما ایجاد و پیکربندی میکند.
اشکالزدایی android_test هدف Java و Kotlin
روی نماد کنار android_test واحد در Android.bp، یا کنار کلاس Java یا Kotlin JUnit یا روش @Test کلیک کنید، و سپس عیبیابی «<TestName>» را انتخاب کنید. از کنار فایل منبع، ASfP نزدیکترین واحد android_test دربرگیرنده را که srcs آن شامل فایل است انتخاب میکند و پیکربندی را <module>، <module>:<SimpleClass>، یا <module>:<SimpleClass>#<method> نامگذاری میکند.
ASfP با --wait-for-debugger در atest اجرا میشود، ویژگی package
هدف را از AndroidManifest.xml واحد میخواند، منتظر میماند تا آن فرایند در
دستگاه متصل اجرا شود، و اشکالزدای Java را پیوست میکند.

اشکالزدایی cc_test و rust_test هدف تحت LLDB
برای اشکالزدایی واحد آزمایشی C++ یا Rust (cc_test، cc_test_host، rust_test، یا
rust_test_host)، روی نماد حاشیه Android.bp کلیک کنید و اشکالزدایی
'<TestName>' را انتخاب کنید. ASfP بهجای اجرای فایل اجرایی آزمایشی کامپایلشده ازطریق atest، آن را تحت اشکالزدای LLDB داخلی خود راهاندازی میکند.
پیکربندی پیکربندی اجرای «آزمایش Soong»
اجرا > ویرایش پیکربندیها را باز کنید و پیکربندی آزمایش Soong را برای سفارشیسازی نحوه ساخت، استقرار، و راهاندازی آزمایشها انتخاب کنید:
- تکمیل خودکار واحد و
Android.bpپیمایش: فیلد واحد از واحدهای آزمایشی نمایه Soong در پروژه شما بهطور خودکار تکمیل میشود. برای پریدن به بیانیه واحد درAndroid.bp، روی رفتن به Android.bp در کنار فیلد کلیک کنید. - اجرا در: دستگاه یا میزبان (شامل
host_supported: true): ASfP قانون واحد و زنجیره انتقالی آن را ارزیابی میکندdefaults(host_supported،device_supported،enabled،target.android.enabled، وtarget.host.enabled):- آزمایشهای دوهدفه (
cc_testوrust_testباhost_supported: true): هر دو دکمه رادیویی دستگاه و میزبان درحالحاضر دردسترس هستند (بهطور پیشفرض روی دستگاه تنظیم شدهاند). دستگاه و میزبان هرکدام الگوی اشکالزدای LLDB مستقل خودشان را دارند. جابهجایی اجرا در بین دستگاه و میزبان بین پیکربندی دستگاه از دورlldb-serverو پیکربندی باینری میزبان محلی جابهجا میشود و درعینحال سفارشیسازیهای انجامشده در هر هدف را حفظ میکند. - آزمایشهای تکهدف: اگر آزمایش C++ یا Rust فقط برای یک محیط (مثل
cc_testفقط دستگاه یاcc_test_hostفقط میزبان یاrust_test_host) ساخته شود، ASfP هدف پشتیبانیشده را انتخاب میکند و دکمه رادیویی پشتیبانینشده را با نکتهابزاری توضیحی غیرفعال میکند: "<module> (<ruleType>) doesn't build for the host or device."
- آزمایشهای دوهدفه (
- تکالیف پیشاز راهاندازی (ساختن واحد آزمایشی بومی و پیادهسازی با atest):
هر پیکربندی Soong Test بهطور پیشفرض شامل دو تکلیف پیشاز راهاندازی است:
- ساختن واحد آزمایش بومی: قبلاز شروع LLDB،
<module>-target(برای دستگاه) یا<module>-host(برای میزبان) را میسازد. - پیادهسازی با atest: هنگام اشکالزدایی در دستگاه،
atest <module> --collect-tests-only --disable-teardown -it -s <serial> -- --abi <abi>اجرا میشود، بنابراین Tradefed وابستگیهای آزمایش را ارسال میکند و آمادهسازهای هدف را قبلاز راهاندازی باینری LLDB اجرا میکند. نشانگر را روی تراشه استقرار با آزمایش نگه دارید تا پیشنمایش فرمان دقیقatestرا ببینید. برای تکرار سریعتر پساز اینکه وابستگیها ازقبل در دستگاه وجود دارد، Deploy with atest را بردارید تا ASfP فقط باینری آزمایش را مستقیماً ارسال کند. وقتی اجرا در: میزبان را انتخاب میکنید، ASfP بهطور خودکار از استقرار با atest صرفنظر میکند.
- ساختن واحد آزمایش بومی: قبلاز شروع LLDB،
- گزینههای اصلاح و اشکالزدا (کارتهای گزینههای LLDB): از گزینههای اصلاح
برای افزودن فیلدهای پیکربندی اختیاری استفاده کنید:
- آرگومانهای برنامه (فقط تستهای سیستمعامل، C++، و Rust):
آرگومانهای اضافی که مستقیماً به باینری
cc_testیاrust_testبعداز فیلتر--gtest_filterیاlibtestهنگام اشکالزدایی ارسال میشوند. - متغیرهای atest (آزمایش): پرچمهای اضافی که هنگام اجرای آزمایش یا هنگام آمادهسازی دستگاه با استقرار با atest به
atestارسال میشوند. - اشکالزدا (فقط آزمایشهای C++ و Rust): وقتی واحد هدف
cc_test*یاrust_test*باشد نشان داده میشود. برای روشن/خاموش کردن کارتهای گزینههای LLDB (مثل توقف در ورودی، نمادهای حافظه نهان در سراسر جلسهها، بار کردن نمادها درصورت نیاز، یا با دیداریسازهای Rust برای آزمایشهای Rust)، روی بازنشانی به پیشفرضها کلیک کنید تا الگوی فعال دستگاه یا میزبان بازنشانی شود، یا دایرکتوریهای نماد، فرمانهای Init، Pre-run، Post-run، یا Exit، و راهاندازی JSON (تنظیمات DAP) را از گزینههای اصلاح > عیبیاب اضافه کنید.
- آرگومانهای برنامه (فقط تستهای سیستمعامل، C++، و Rust):
آرگومانهای اضافی که مستقیماً به باینری

مشاهده نتایج آزمایش
پیشرفت اجرای آزمایش، وضعیت موفق یا ناموفق بودن، ردیابی پشته، و گزارشهای دستگاه بهطور همزمان در پنجره ابزار اجرا یا اشکالزدایی در ASfP نشان داده میشود.
نکتههایی برای آزمایش
- اجرای آزمایشهای هدفمند: روشهای جداگانه را از حاشیه ویرایشگر بدون اجرای مجموعه آزمایش کامل آزمایش کنید.
- استفاده از تصاویر فوری Cuttlefish: هنگام اجرای آزمایشهای دستگاه در دستگاههای مجازی Cuttlefish، از تصاویر فوری برای بازیابی وضعیت دستگاه پاک بین اجراها استفاده کنید.
- بازرسی گزارشهای ساخت Soong: اگر آزمایشی قبلاز اجرا کامپایل نشد، پنجره ابزار Soong را برای تشخیص خرابی کامپایلر بررسی کنید.