أولاً، تأكَّد من فهم التعامل مع الخيارات في Tradefed.
يصف إعداد المجموعة الطبقتَين المتوفّرتَين في بنية المجموعة:
- حزمة المستوى الأعلى
- الوحدات
في سياق Tradefed غير المجمّع، لا داعي للتفكير في ذلك، إذ يتم إرسال كل خيار إلى عملية الاستدعاء الكاملة. في سياق مجموعة، يتم إبقاء الوحدات معزولة عن المجموعة، وبالتالي لا تتوفّر جميع الخيارات على مستوى الوحدات.
تمرير الخيارات إلى الحزمة ذات المستوى الأعلى
تعمل الحزمة ذات المستوى الأعلى مثل إعدادات Tradefed العادية: تتلقّى الإعدادات الكاملة، بما في ذلك أداة تشغيل الحزمة، جميع الخيارات مثل إعدادات Tradefed غير التابعة لحزمة.
تمرير الخيارات إلى الوحدات
لا تتلقّى الوحدات بشكلٍ تلقائي أيًا من الخيارات التي تم تمريرها إلى الأمر.
يجب استهدافهم بشكلٍ صريح لتلقّي الخيارات من خلال الخيار module-arg
. ويسهّل عزل خيارات الوحدات تصحيح الأخطاء.
مثال:
cts-tradefed run cts --module-arg <module-name>:<option-name>:<option-value>
cts-tradefed run cts --module-arg CtsGestureTestCases:collect-tests-only:true
يضمن بناء الجملة أنّ الوحدة المستهدَفة ستتلقّى الخيار المحدّد.
هناك طرق إضافية لتمرير الخيارات إلى الوحدات، مثل test-arg
، التي تتيح لك تمرير الخيارات إلى برنامج تشغيل الاختبار لكل وحدة استنادًا إلى نوع برنامج التشغيل أو فئته.
مثال:
cts-tradefed run cts --test-arg <test-class>:<option-name>:<option-value>
cts-tradefed run cts --test-arg com.android.tradefed.testtype.JarHosttest:collect-tests-only:true
لا تستهدف البنية وحدة معيّنة، بل تستهدف جميع أدوات تشغيل الاختبارات الخاصة بالفئة المحدّدة. لا تأخذ test-arg
في الاعتبار سوى عمليات تنفيذ
IRemoteTest
باعتبارها الجهة المحتملة لتلقّي الخيارات.
تمرير خيارات إلى فئة اختبار Java في java_test_host
إذا كنت تضيف @Option
إلى فئة اختبار Java كجزء من هدف إنشاء java_test_host، عليك استخدام ما يلي لإدخال هذا الخيار:
cts-tradefed run cts --module-arg <module-name>:set-option:<option-name>:<option-value>
set-option في هذا السياق هو خيار برنامج التشغيل HostTest من بيئة الاختبار الذي يغلّف فئات Java لتنفيذها.
إذا كان هدف ملف jar للخيارات يحتوي على فئات اختبار متعدّدة، من المفترض تلقائيًا أن تحتوي جميعها على الخيار @option المحدّد أو أن تستخدم الصيغة التالية لاستهداف فئة واحدة:
cts-tradefed run cts --module-arg <module-name>:set-option:<class-name>:<option-name>:<option-value>
تمرير الفلاتر إلى المجموعة
لفلترة بعض الاختبارات من مجموعة، نستخدم --include-filter
و--exclude-filter
لتضمين أو استبعاد اختبار أو وحدة معيّنة بشكل إلزامي على التوالي. تكون الأولوية للاستبعاد.
تستخدم هذه السمة التنسيق التالي: [abi] <module-name> [test name]
أمثلة:
--include-filter CtsGestureTestCases
--include-filter armeabi-v7a CtsGestureTestCases
--include-filter armeabi-v7a CtsGestureTestCases android.gesture.cts.GestureTest#testGetStrokes