تمرير الخيارات والمرشحات إلى المجموعة والوحدات النمطية، تمرير الخيارات والمرشحات إلى المجموعة والوحدات النمطية

أولا، تأكد من أنك تفهم التعامل مع الخيارات في 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>

خيار الإعداد في هذا السياق هو خيار مشغل 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
,

أولا، تأكد من أنك تفهم التعامل مع الخيارات في 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>

خيار الإعداد في هذا السياق هو خيار مشغل 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