يتكامل Android Studio for Platform (ASfP) مع atest ووحدات اختبار Soong،
ما يتيح لك تشغيل اختبارات النظام الأساسي وتصحيح أخطائها على جهاز Linux المضيف أو الجهاز المتصل أو جهاز Cuttlefish الافتراضي من بيئة التطوير المتكاملة.
المتطلبات الأساسية
- افتح مشروع ASfP تم إعداده باستخدام عملية استخراج AOSP و
lunch. - بالنسبة إلى اختبارات الأجهزة، عليك ربط جهاز فعلي أو تشغيل جهاز Cuttlefish افتراضي يعمل بإصدار مطابق.
تشغيل الاختبارات وتصحيح الأخطاء
يمكنك بدء اختبارات المنصة وجلسات تصحيح الأخطاء من عدة أماكن في ASfP:
Android.bpأهداف الاختبار: افتح ملفAndroid.bpوانقر على تشغيل في الهامش بجانب أي وحدة اختبار (*_testأو*_test_host):- Run: متاحة لجميع أنواع وحدات اختبار Soong (
android_testوjava_test_hostوcc_testوrust_testوpython_testوsh_testوandroid_robolectric_test). - تصحيح الأخطاء: متاح لوحدات
android_test(التي يتم ربطها بمصحّح أخطاء Java باستخدامatest --wait-for-debugger) ووحدات اختبار C++ أو Rust (cc_testوcc_test_hostوrust_testوrust_test_host، التي يتم تشغيلها ضمن مصحّح أخطاء LLDB المضمّن في ASfP).
- Run: متاحة لجميع أنواع وحدات اختبار Soong (
- رموز هامش الملف المصدر: انقر على تشغيل بجانب فئة اختبار أو طريقة
@Testفي الرمز المصدر لتشغيل هذا الاختبار المحدّد أو تصحيحه. - قائمة السياق التي تظهر عند النقر بزر الماوس الأيمن: انقر بزر الماوس الأيمن على ملف اختبار أو فئة أو طريقة أو وحدة
Android.bpواختَر تشغيل أو تصحيح الأخطاء. - الوكيل المضمّن (الذكاء الاصطناعي في "استوديو Android"): في نافذة أداة الوكيل، يمكن للوكيل المضمّن تنفيذ
atestأهداف للتحقّق من التغييرات بعد تعديل الرمز. - وحدة طرفية مدمجة: افتح عرض > نوافذ الأدوات > الوحدة الطرفية لتنفيذ أوامر
atestمباشرةً.
إعداد الاختبار الذكي وتصحيح الأخطاء
عند تشغيل اختبار من الهامش أو قائمة السياق، تنشئ 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 atest باستخدام --wait-for-debugger، وتقرأ السمة المستهدَفة 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 ملف الاختبار الثنائي المجمَّع ضمن مصحّح أخطاء LLDB المضمّن بدلاً من تشغيله من خلال atest.
ضبط إعدادات تشغيل اختبار 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 تلقائيًا مهمتَين من مهام قبل الإطلاق:
- إنشاء وحدة اختبار أصلية: تنشئ
<module>-target(الجهاز) أو<module>-host(المضيف) قبل بدء LLDB. - النشر باستخدام atest: عند تصحيح الأخطاء على الجهاز، يتم تشغيل
atest <module> --collect-tests-only --disable-teardown -it -s <serial> -- --abi <abi>، وبالتالي يرسل Tradefed تبعيات الاختبار وينفّذ أدوات إعداد الهدف قبل أن يطلق LLDB الملف الثنائي. مرِّر المؤشر فوق شريحة النشر مع اختبار لمعاينة أمرatestالدقيق. لإجراء عمليات تكرار أسرع بعد توفّر التبعيات على الجهاز، أزِل علامة النشر باستخدام atest كي لا يرسل ASfP سوى رمز الاختبار الثنائي مباشرةً. عند اختيار التشغيل على: المضيف، تتخطى ميزة ASfP تلقائيًا خيار النشر باستخدام أحدث إصدار.
- إنشاء وحدة اختبار أصلية: تنشئ
- تعديل الخيارات وأداة تصحيح الأخطاء (بطاقات خيارات LLDB): استخدِم تعديل الخيارات
لإضافة حقول إعداد اختيارية:
- وسيطات البرنامج (نظام التشغيل، اختبارات C++ وRust فقط):
وسيطات إضافية يتم تمريرها مباشرةً إلى الملف الثنائي
cc_testأوrust_testبعد الفلتر--gtest_filterأوlibtestعند تصحيح الأخطاء. - وسيطات atest (اختبار): علامات إضافية يتم تمريرها إلى
atestعند تشغيل الاختبار أو عند إعداد جهاز باستخدام النشر باستخدام atest. - أداة تصحيح الأخطاء (اختبارات C++ وRust فقط): تظهر عندما يكون الوحدة هدفًا من النوع
cc_test*أوrust_test*. يمكنك تبديل بطاقات خيارات LLDB (مثل التوقّف عند الإدخال أو تخزين الرموز مؤقتًا في جميع الجلسات أو تحميل الرموز عند الطلب أو باستخدام أدوات العرض المرئي في Rust لاختبارات Rust)، أو النقر على إعادة الضبط إلى الإعدادات التلقائية لإعادة ضبط نموذج الجهاز أو المضيف النشط، أو إضافة أدلة الرموز أو أوامر الإعداد أو ما قبل التشغيل أو ما بعد التشغيل أو الخروج أو ملف JSON للتشغيل (إعدادات DAP) من تعديل الخيارات > مصحّح الأخطاء.
- وسيطات البرنامج (نظام التشغيل، اختبارات C++ وRust فقط):
وسيطات إضافية يتم تمريرها مباشرةً إلى الملف الثنائي

عرض نتائج الاختبار
يظهر في الوقت الفعلي داخل نافذة أداة التشغيل أو تصحيح الأخطاء في "استوديو Android للبرامج" كلّ من مستوى تقدّم تنفيذ الاختبار وحالة النجاح أو الفشل وتتبُّع تسلسل استدعاء الدوال البرمجية وسجلّات الجهاز.
نصائح حول الاختبار
- إجراء اختبارات مستهدَفة: يمكنك اختبار طرق فردية من هامش المحرّر بدون إجراء مجموعة اختبارات كاملة.
- استخدام لقطات Cuttlefish: عند إجراء اختبارات الأجهزة على أجهزة Cuttlefish الافتراضية، استخدِم اللقطات لاستعادة حالة جهاز نظيفة بين عمليات التشغيل.
- فحص سجلات إنشاء Soong: إذا تعذّر تجميع اختبار قبل تشغيله، تحقَّق من نافذة أدوات Soong بحثًا عن بيانات تشخيص المجمّع.