تمرير الخيارات والفلاتر إلى الحزمة والوحدات

أولاً، تأكَّد من فهم معالجة الخيارات في Tradefed.

إعداد Suite يصف الطبقتين الموجودتين في بنية الجناح:

  • جناح عالي المستوى
  • الوحدات

في سياق 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_test_host، ستحتاج إلى استخدام ما يلي لإدخال الخيار:

cts-tradefed run cts --module-arg <module-name>:set-option:<option-name>:<option-value>

set-option في هذا السياق هو خيار أداة HostTest runner من مجموعة أدوات الاختبار التي تلفّ فئات Java لتنفيذها.

إذا كان هدف ملف 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