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

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

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

  1. पक्का करें कि कोई डिवाइस होस्ट से कनेक्ट हो और adb और ज़रूरत पड़ने पर fastboot, Eclipse के PATH में हों. इसे करने का सबसे आसान तरीका यह है कि सही PATH के साथ शेल सेटअप से Eclipse को लॉन्च करें.
  2. कोई Java ऐप्लिकेशन बनाएं. रन > कॉन्फ़िगरेशन चलाएं के ज़रिए कॉन्फ़िगरेशन चलाएं.
  3. प्रोजेक्ट को tradefed-tests और मुख्य क्लास को com.android.tradefed.command.CommandRunner पर सेट करें.
  4. m tradefed-all चलाएं.
  5. आर्ग्युमेंट टैब में, ये कमांड लाइन आर्ग्युमेंट उपलब्ध कराएं: 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 प्री-सबमिट की तरह ही चलाना है, तो इसका इस्तेमाल करें:

tools/tradefederation/core/javatests/run_tradefed_aosp_presubmit.sh

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

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