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