ابتدا مطمئن شوید که مدیریت گزینه در 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_test_host منتقل کنید
اگر یک @Option
به کلاس تست جاوا خود به عنوان بخشی از هدف ساخت java_test_host اضافه می کنید، باید از موارد زیر برای تزریق آن گزینه استفاده کنید:
cts-tradefed run cts --module-arg <module-name>:set-option:<option-name>:<option-value>
set-option در این زمینه، گزینه HostTest runner از مهار تست است که کلاسهای جاوا شما را برای اجرای آنها میپیچد.
اگر هدف فایل 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