सबसे पहले, पक्का करें कि आपको ट्रेडेड में विकल्प मैनेज करने के बारे में जानकारी हो.
सुइट सेटअप से, सुइट के स्ट्रक्चर में मौजूद दो लेयर के बारे में पता चलता है:
- टॉप-लेवल सुइट
- मॉड्यूल
नॉन-सुइट 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 में Java टेस्ट क्लास के लिए विकल्प पास करें
अगर java_test_host बिल्ड टारगेट के हिस्से के तौर पर, अपनी java टेस्ट क्लास में @Option
जोड़ा जा रहा है, तो उस विकल्प को इंजेक्ट करने के लिए, आपको इनका इस्तेमाल करना होगा:
cts-tradefed run cts --module-arg <module-name>:set-option:<option-name>:<option-value>
set-option इस संदर्भ में होस्ट टेस्ट रनर का विकल्प है, जो टेस्ट हार्नेस से मिलता है. यह आपकी JavaScript क्लास को एक्ज़ीक्यूट करने के लिए रैप करता है.
अगर विकल्पों के लिए आपकी जार फ़ाइल के टारगेट में कई टेस्ट क्लास हैं, तो डिफ़ॉल्ट रूप से उन सभी में @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