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

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

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

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

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

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

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

Trade Federation के लिए, सभी AOSP यूनिट टेस्ट और फ़ंक्शनल टेस्ट, 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. पक्का करें कि कोई डिवाइस होस्ट से कनेक्ट हो और adb और अगर ज़रूरी हो, तो fastboot Eclipse के 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. इसके अलावा, adb devices के आउटपुट में दिखने वाले डिवाइस को --serial <serial no> जोड़कर भी चुना जा सकता है.

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

अगर आपको टीएफ़ प्रीसबमिट की तरह ही टेस्ट चलाना है, तो इसका इस्तेमाल करें:

tools/tradefederation/core/javatests/run_tradefed_aosp_presubmit.sh

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

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