ابتدا مطمئن شوید که مدیریت گزینه در 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
(اسناد، کد منبع) یا ITargetPreparer (اسناد،
کد منبع) را بهعنوان گیرندههای احتمالی گزینهها درنظر میگیرد.
ارسال گزینهها به کلاس آزمون جاوا در 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 شما برای گزینهها شامل چندین کلاس آزمایش باشد، بهطور پیشفرض، انتظار میرود همه آنها @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