यूनिट और फ़ंक्शनल टेस्ट शामिल करें

इस सेक्शन में, प्रोजेक्ट में बदलाव करने के बाद, Trade Federation टेस्ट को चलाने और उनमें योगदान देने का तरीका बताया गया है. इसमें ये शामिल हैं:

  • नई यूनिट टेस्ट क्लास कहां जोड़ें
  • 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

यूनिट टेस्ट को अलग से चलाया जा सकता है. हालांकि, फ़ंक्शनल टेस्ट को Trade Federation का इस्तेमाल करके ही चलाया जाना चाहिए. इसके लिए, 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 से फ़ंक्शन टेस्ट चलाने के लिए:

  1. पक्का करें कि कोई डिवाइस होस्ट से कनेक्ट हो और adb और ज़रूरत पड़ने पर fastboot, Eclipse के PATH में हों. इसे करने का सबसे आसान तरीका है, सही PATH के साथ शेल सेटअप से Eclipse को लॉन्च करना.
  2. कोई Java ऐप्लिकेशन बनाएं. रन > कॉन्फ़िगरेशन चलाएं के ज़रिए कॉन्फ़िगरेशन चलाएं.
  3. प्रोजेक्ट को tradefed-tests और मुख्य क्लास को com.android.tradefed.command.CommandRunner पर सेट करें.
  4. m tradefed-all चलाएं.
  5. Arguments टैब में, ये कमांड लाइन आर्ग्युमेंट दें: host --class <full path of test class to run>
  6. चलाएं पर क्लिक करें.

Eclipse के बाहर फ़ंक्शनल टेस्ट चलाने के लिए.

  1. ट्रेड फ़ेडरेशन बनाएं.
  2. Android डिवाइस को होस्ट से कनेक्ट करें.
  3. tools/tradefederation/core/javatests/run_tradefed_func_tests.sh चलाएं
  4. इसके अलावा, --serial <serial no> को जोड़कर भी डिवाइस चुना जा सकता है, जैसा कि adb devices के आउटपुट में दिखता है.

स्थानीय बदलावों के लिए, TF के प्रीसबमिट टेस्ट चलाना

अगर आपको TF presubmit की तरह ही चलाना है, तो इसका इस्तेमाल करें:

tools/tradefederation/core/javatests/run_tradefed_aosp_presubmit.sh

इससे, आपके स्थानीय तौर पर बनाए गए TF के लिए, सबमिट करने से पहले होने वाले सभी TF टेस्ट ट्रिगर हो जाएंगे. इससे आपको यह पुष्टि करने में मदद मिलेगी कि आपके बदलाव से किसी भी टेस्ट में रुकावट नहीं आ रही है.

TF के पहले सबमिट किए जाने वाले टेस्ट, ऊपर बताए गए यूनिट टेस्ट के सुपरसेट हैं. हालांकि, इन्हें चलाने में ज़्यादा समय लगता है. इसलिए, हमारा सुझाव है कि पुष्टि करने के लिए, डेवलपमेंट के दौरान यूनिट टेस्ट चलाएं. साथ ही, सीएल अपलोड करने से पहले, प्रीस्बमिट चलाएं.