أولاً، تأكَّد من فهم التعامل مع الخيارات في سوق متداولة.
إعداد Suite يصف الطبقتين الموجودتين في بنية الحزمة:
- جناح عالي المستوى
- الوحدات
في سياق سوق مقايضة لا يرتبط بأجنحة، لا داعي للتفكير في الأمر؛ كلّ ينتقل إلى الاستدعاء الكامل. في سياق الحزمة، يتم الاحتفاظ بالوحدات معزولاً عن الجناح؛ لذلك لا تتوفر جميع الخيارات على مستواها.
تمرير الخيارات إلى مجموعة المستوى الأعلى
تتصرف حزمة المستوى الأعلى مثل تهيئة التجارة القياسية: مجموعة البيانات والتهيئة بما في ذلك عداء الجناح جميع الخيارات مثل الإعدادات المقايضة التي لا تستند إلى أجنحة.
تمرير الخيارات إلى الوحدات
لا تتلقى الوحدات بشكل افتراضي أيًا من الخيارات التي يتم تمريرها إلى الأمر.
ويجب أن يتم استهدافهم بشكلٍ صريح لتلقّي الخيارات من خلال
الخيار 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_test_host، ستحتاج إلى استخدام ما يلي لإدخال
الخيار:
cts-tradefed run cts --module-arg <module-name>:set-option:<option-name>:<option-value>
set-option في هذا السياق هو خيار عدّاء HostTest من خلال حزام الاختبار يلتف فئات جافا لتنفيذها.
إذا كان هدف ملف jar للخيارات يحتوي على فئات اختبار متعددة، بشكل افتراضي، يُتوقع منهم جميعًا تحديد الخيار @أو استخدام البنية التالية لاستهداف فئة واحدة:
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