इस सेक्शन में बताया गया है कि प्रोजेक्ट में बदलाव करने के बाद, ट्रेड फ़ेडरेशन के टेस्ट चलाने और उनमें योगदान देने का तरीका क्या है. इसमें ये शामिल हैं:
- नई यूनिट टेस्ट क्लास कहां जोड़ें
- Eclipse और Eclipse IDE के बाहर यूनिट टेस्ट चलाना
- फ़ंक्शनल टेस्ट कहां जोड़ें
- फ़ंक्शनल टेस्ट चलाना
- TF के कुछ प्री-सबमिट की पुष्टि स्थानीय तौर पर करना
यूनिट टेस्ट जोड़ना
Android Open Source Project (AOSP) में, यूनिट टेस्ट क्लास को यहां जोड़ें: tools/tradefederation/core/tests/src/com/android/tradefed/UnitTests.java
अहम जानकारी: अपनी नई यूनिट टेस्ट क्लास को इन जगहों में जोड़ने पर, उन्हें पहले से सबमिट करने की प्रोसेस में अपने-आप चलने लगेगा. इसके लिए, अलग से कोई सेटअप नहीं करना होगा.
यूनिट टेस्ट चलाना
Trade Federation के लिए, AOSP की सभी यूनिट टेस्ट और फ़ंक्शनल टेस्ट, tools/tradefederation/core/tests
प्रोजेक्ट में मौजूद हैं.
Eclipse में, किसी यूनिट टेस्ट को चलाने के लिए, उस पर राइट क्लिक करें और इस तौर पर चलाएं > JUnit चुनें. सभी यूनिट टेस्ट चलाने के लिए, com.android.tradefed.UnitTests सुइट चलाएं.
बिल्ड करने के बाद, Tradefed सोर्स ट्री में कमांड लाइन से भी यूनिट टेस्ट शुरू किया जा सकता है. इसके लिए, यह तरीका अपनाएं:
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
एपीआई का इस्तेमाल करता है), तो सुइट की परिभाषाcom.android.tradefed.DeviceFuncTests
में होती है. इसके अलावा, सुइट की डेफ़िनिशनcom.android.tradefed.FuncTests
में मौजूद होती है.अगर आपके टेस्ट के तरीके, मौजूदा सुइट की किसी सब-क्लास में शामिल किए जा सकते हैं, तो उन्हें वहां जोड़ें. अगर ऐसा नहीं है, तो लागू होने वाले सुइट में नई क्लास जोड़ें.
दोनों ही मामलों में, इसे सुइट में जोड़ने पर, आपका टेस्ट अन्य फ़ंक्शनल टेस्ट के साथ सीआई पाइपलाइन में अपने-आप चलने लगता है.
फ़ंक्शन की जांच करना
Eclipse से फ़ंक्शन टेस्ट चलाने के लिए:
- पक्का करें कि कोई डिवाइस होस्ट से कनेक्ट हो और
adb
और ज़रूरत पड़ने परfastboot
, Eclipse के PATH में हों. इसे करने का सबसे आसान तरीका यह है कि सही PATH के साथ शेल सेटअप से Eclipse को लॉन्च करें. - कोई Java ऐप्लिकेशन बनाएं. रन > कॉन्फ़िगरेशन चलाएं के ज़रिए कॉन्फ़िगरेशन चलाएं.
- प्रोजेक्ट को
tradefed-tests
और मुख्य क्लास कोcom.android.tradefed.command.CommandRunner
पर सेट करें. m tradefed-all
चलाएं.- आर्ग्युमेंट टैब में, ये कमांड लाइन आर्ग्युमेंट दें:
host --class <full path of test class to run>
- चलाएं पर क्लिक करें.
Eclipse के बाहर फ़ंक्शनल टेस्ट चलाने के लिए.
- ट्रेड फ़ेडरेशन बनाएं.
- किसी Android डिवाइस को होस्ट से कनेक्ट करें.
tools/tradefederation/core/javatests/run_tradefed_func_tests.sh
चलाएं- इसके अलावा,
--serial <serial no>
को जोड़कर भी डिवाइस चुना जा सकता है, जैसा किadb devices
के आउटपुट में दिखता है.
स्थानीय बदलावों के लिए, TF के सबमिट करने से पहले होने वाले टेस्ट चलाना
अगर आपको TF presubmit की तरह ही चलाना है, तो इसका इस्तेमाल करें:
tools/tradefederation/core/javatests/run_tradefed_aosp_presubmit.sh
इससे, आपके स्थानीय तौर पर बनाए गए TF के लिए, सबमिट करने से पहले होने वाले सभी TF टेस्ट ट्रिगर हो जाएंगे. इससे आपको यह पुष्टि करने में मदद मिलेगी कि आपके बदलाव से किसी भी टेस्ट में रुकावट नहीं आ रही है.
TF प्री-सबमिट टेस्ट, ऊपर दिए गए यूनिट टेस्ट के सुपरसेट हैं. हालांकि, इन्हें चलाने में ज़्यादा समय लगता है. इसलिए, हमारा सुझाव है कि पुष्टि करने के लिए, डेवलपमेंट के दौरान यूनिट टेस्ट चलाएं. साथ ही, सीएल अपलोड करने से पहले, प्रीस्बमिट चलाएं.