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

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

  • यूनिट टेस्ट की नई क्लास कहां जोड़नी हैं
  • Eclipse में और Eclipse IDE के बाहर, यूनिट टेस्ट चलाना
  • फ़ंक्शन की जांच कहां जोड़नी हैं
  • फ़ंक्शन की जांच चलाना
  • TF presubmit की पुष्टि करने की कुछ जांचें, लोकल लेवल पर चलाना

यूनिट टेस्ट जोड़ना

Android Open Source Project (AOSP) में, यूनिट टेस्ट की क्लास यहां जोड़ें: tools/tradefederation/core/tests/src/com/android/tradefed/UnitTests.java

अहम जानकारी: यूनिट टेस्ट की नई क्लास को इन जगहों पर जोड़ने से, वे presubmit में अपने-आप चलने लगेंगी. इसके लिए, कोई अतिरिक्त सेटअप करने की ज़रूरत नहीं होगी.

यूनिट टेस्ट चलाना

Trade Federation के लिए, AOSP के सभी यूनिट टेस्ट और फ़ंक्शन की जांच, the tools/tradefederation/core/tests प्रोजेक्ट में मौजूद हैं.

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

Eclipse के बाहर, फ़ंक्शन की जांच चलाने के लिए:

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

लोकल बदलावों के लिए, TF presubmit टेस्ट चलाना

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

tools/tradefederation/core/javatests/run_tradefed_aosp_presubmit.sh

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

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