ابتدا، مطمئن شوید که مدیریت آپشن در Tradefed را درک میکنید.
راهاندازی سوئیت، دو لایه موجود در ساختار سوئیت را توصیف میکند:
- سوئیت سطح بالا
- ماژولها
در یک زمینهی غیر-مجموعهای Tradefed، نیازی به فکر کردن در مورد آن نیست؛ هر گزینه به فراخوانی کامل میرود. در یک زمینهی مجموعه، ماژولها از مجموعه جدا نگه داشته میشوند؛ بنابراین همه گزینهها در سطح خود در دسترس نیستند.
گزینهها را به مجموعه سطح بالا منتقل کنید
مجموعه سطح بالا مانند پیکربندی استاندارد Tradefed رفتار میکند: پیکربندی کامل شامل runner مجموعه، تمام گزینهها را مانند یک پیکربندی غیر مجموعه 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 ( documentation ، کد منبع ) یا ITargetPreparer ( documentation ، کد منبع ) را به عنوان گیرندههای بالقوه گزینهها در نظر میگیرد.
گزینهها را به یک کلاس تست جاوا در java_test_host ارسال کنید.
اگر میخواهید @Option به عنوان بخشی از هدف ساخت java_test_host به کلاس تست جاوای خود اضافه کنید، باید از کد زیر برای تزریق آن گزینه استفاده کنید:
cts-tradefed run cts --module-arg <module-name>:set-option:<option-name>:<option-value>
در این زمینه ، set-option گزینهای از اجراکنندهی HostTest از test harness است که کلاسهای جاوای شما را برای اجرای آنها در بر میگیرد.
اگر فایل 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