यह अनुभाग बताता है कि प्रोजेक्ट में बदलाव करने के बाद ट्रेड फेडरेशन परीक्षणों को कैसे चलाया जाए और उसमें योगदान कैसे दिया जाए। यह भी शामिल है:
- नई यूनिट टेस्ट कक्षाएं कहां जोड़ें
- एक्लिप्स में और एक्लिप्स आईडीई के बाहर यूनिट परीक्षण चलाना
- कार्यात्मक परीक्षण कहां जोड़ें
- कार्यात्मक परीक्षण चला रहा है
- कुछ TF प्रीसबमिट सत्यापन स्थानीय स्तर पर चला रहे हैं
इकाई परीक्षण जोड़ें
एंड्रॉइड ओपन सोर्स प्रोजेक्ट (एओएसपी) में, यूनिट टेस्ट क्लास को इसमें जोड़ें: टूल्स/ट्रेडफेडरेशन/कोर/टेस्ट/src/com/android/tradefed/UnitTests.java
महत्वपूर्ण: इन स्थानों पर अपनी नई इकाई परीक्षण कक्षाएं जोड़ने से वे अतिरिक्त सेटअप के बिना प्रीसबमिट में स्वचालित रूप से चलने लगेंगी।
इकाई परीक्षण चलाएँ
ट्रेड फेडरेशन के लिए सभी एओएसपी यूनिट परीक्षण और कार्यात्मक परीक्षण tools/tradefederation/core/tests
प्रोजेक्ट में स्थित हैं।
एक्लिप्स के अंदर, एक व्यक्तिगत इकाई परीक्षण चलाने के लिए, बस परीक्षण पर राइट-क्लिक करें और Run As > JUnit चुनें। सभी यूनिट परीक्षण चलाने के लिए, com.android.tradefed.UnitTests सुइट चलाएँ।
आप बिल्डिंग के बाद ट्रेडफेड सोर्स ट्री में कमांड लाइन से यूनिट टेस्ट भी शुरू कर सकते हैं, जैसे: tools/tradefederation/core/javatests/run_tradefed_tests.sh
यूनिट परीक्षणों को अकेले निष्पादित किया जा सकता है, लेकिन कार्यात्मक परीक्षणों को ट्रेड फेडरेशन का उपयोग करके ही निष्पादित किया जाना चाहिए; उन्हें एक Android डिवाइस की आवश्यकता है. सभी कार्यात्मक परीक्षणों को नामकरण परंपरा *FuncTest
का पालन करना चाहिए।
यूनिट परीक्षण परिणाम जांचें
run_tradefed_tests.sh
चलाते समय, यूनिट परीक्षण कुछ त्रुटि स्थितियों सहित परीक्षण हार्नेस के सभी हिस्सों का उपयोग कर रहे हैं। यह स्टैक ट्रेस सहित कंसोल पर वर्बोज़ आउटपुट प्रिंट करेगा।
परिणामों का अंतिम सारांश बताएगा कि विफलता हुई या नहीं।
कंसोल में उदाहरण अंतिम सारांश:
12:55:02 ========== Result Summary ==========
Results summary for test-tag 'TFUnitTests': 3355 Tests [3355 Passed]
सभी परीक्षणों को पास करने के लिए बनाए रखा जाता है, इसलिए यदि आपके स्थानीय परिवर्तन पर कोई विफलता होती है तो कृपया सुनिश्चित करें कि परीक्षण ठीक हो गए हैं।
कार्यात्मक परीक्षण जोड़ें
यदि आपके कार्यात्मक परीक्षण में एक उपकरण शामिल है (किसी भी
ITestDevice
API का उपयोग करता है) तो सुइट परिभाषाcom.android.tradefed.DeviceFuncTests
में स्थित है। अन्यथा, सुइट परिभाषाcom.android.tradefed.FuncTests
में स्थित है।यदि आपकी परीक्षण विधियां मौजूदा सुइट उप-वर्गों में से किसी एक में डालने के लिए उपयुक्त हैं, तो इसे वहां जोड़ना पसंद करें। अन्यथा, बेझिझक लागू सुइट में एक नई कक्षा जोड़ें।
किसी भी स्थिति में, इसे सुइट में जोड़कर, आपका परीक्षण स्वचालित रूप से अन्य कार्यात्मक परीक्षणों के साथ सीआई पाइपलाइन में चलाया जाता है।
कार्यात्मक परीक्षण चलाएँ
ग्रहण से एक कार्यात्मक परीक्षण चलाने के लिए:
- सुनिश्चित करें कि एक डिवाइस होस्ट से जुड़ा है और वह
adb
और यदि आवश्यक हो तोfastboot
एक्लिप्स के पथ में हैं। ऐसा करने का सबसे आसान तरीका एक्लिप्स को उचित PATH के साथ शेल सेटअप से लॉन्च करना है। - एक जावा एप्लिकेशन बनाएं. रन > रन कॉन्फ़िगरेशन के माध्यम से कॉन्फ़िगरेशन चलाएँ।
- प्रोजेक्ट को
tradefed-tests
और मुख्य वर्ग कोcom.android.tradefed.command.CommandRunner
पर सेट करें। - रन
m tradefed-all
। - तर्क टैब में निम्नलिखित कमांड लाइन तर्क प्रदान करें:
host --class <full path of test class to run>
- चलाएँ पर क्लिक करें.
ग्रहण के बाहर कार्यात्मक परीक्षण चलाने के लिए।
- ट्रेड फेडरेशन का निर्माण करें।
- किसी Android डिवाइस को होस्ट से कनेक्ट करें.
- रन
tools/tradefederation/core/javatests/run_tradefed_func_tests.sh
- वैकल्पिक रूप से,
--serial <serial no>
जोड़कर डिवाइस चुनें, जैसा किadb devices
के आउटपुट में दिखाई देता है।
स्थानीय परिवर्तनों के विरुद्ध TF प्रीसबमिट परीक्षण चलाएँ
यदि आप टीएफ प्रीसबमिट के समान तरीके से चलाना चाहते हैं, तो इसका उपयोग करें:
tools/tradefederation/core/javatests/run_tradefed_aosp_presubmit.sh
यह आपके स्थानीय रूप से निर्मित टीएफ के खिलाफ सभी टीएफ प्रीसबमिट परीक्षणों को ट्रिगर करेगा ताकि आपको यह सत्यापित करने में मदद मिल सके कि आपका परिवर्तन किसी भी परीक्षण को तोड़ नहीं रहा है।
टीएफ प्रीसबमिट परीक्षण उपरोक्त यूनिट परीक्षणों का एक सुपरसेट है, लेकिन उन्हें चलाना धीमा है। इसलिए त्वरित सत्यापन के लिए विकास के दौरान यूनिट परीक्षण चलाने और सीएल अपलोड करने से पहले प्रीसबमिट चलाने की अनुशंसा की जाती है।