Google अश्वेत समुदायों के लिए नस्लीय इक्विटी को आगे बढ़ाने के लिए प्रतिबद्ध है। देखो कैसे।
इस पेज का अनुवाद Cloud Translation API से किया गया है.
Switch to English

जटिल परीक्षण विन्यास

कुछ परीक्षण मॉड्यूल को अनुकूलित सेटअप की आवश्यकता हो सकती है और उन चरणों को फाड़ सकते हैं जो परीक्षण मामले में ही निष्पादित नहीं किए जा सकते। विशिष्ट उदाहरणों में शामिल हो सकते हैं:

  • अन्य एप्स स्थापित करें (परीक्षण apk के अलावा)
  • डिवाइस के लिए कुछ फ़ाइलों को धक्का
  • रन कमांड (जैसे adb शेल दोपहर ...)

अतीत में, घटक दल आमतौर पर ऐसे कार्यों को करने के लिए एक मेजबान पक्ष परीक्षण लिखने का सहारा लेते हैं, जिसके लिए ट्रेड फेडरेशन की समझ की आवश्यकता होती है और आमतौर पर एक परीक्षण मॉड्यूल की जटिलता बढ़ जाती है।

सीटीएस से उधार लेते हुए, हमने ऐसे कार्यों का समर्थन करने के लिए परीक्षण मॉड्यूल कॉन्फिग की अवधारणा पेश की, ऊपर दी गई सामान्य कार्य सूची को केवल कुछ ही पंक्तियों के द्वारा प्राप्त किया जा सकता है। अधिकतम लचीलेपन के लिए, आप ITARgetPreparer या ITargetCleaner द्वारा परिभाषित किए गए अपने स्वयं के लक्ष्य तैयारी को भी लागू कर सकते हैं, और उन्हें अपने स्वयं के परीक्षण मॉड्यूल कॉन्फ़िगरेशन में उपयोग करने के लिए कॉन्फ़िगर कर सकते हैं।

एक परीक्षण मॉड्यूल के लिए एक परीक्षण मॉड्यूल कॉन्फिगरेशन एक आवश्यक XML फ़ाइल है जिसे शीर्ष स्तर के मॉड्यूल स्रोत फ़ोल्डर में जोड़ा जाता है, जिसका नाम 'AndroidTest.xml' है। XML ट्रेड फेडरेशन टेस्ट ऑटोमेशन हार्नेस द्वारा उपयोग की जाने वाली कॉन्फ़िगरेशन फ़ाइल के प्रारूप का अनुसरण करता है। वर्तमान में परीक्षण मॉड्यूल कॉन्फिगर के माध्यम से संभाले गए मुख्य टैग "target_preparer" और "test" टैग हैं।

तैयारी करने वालों को टारगेट करें

एक "target_preparer" टैग, जैसा कि नाम से पता चलता है, एक लक्ष्य तैयारी ( ITargetPreparer देखें) को परिभाषित करता है जो एक सेटअप विधि प्रदान करता है, जिसे परीक्षण मॉड्यूल को परीक्षण के लिए निष्पादित करने से पहले बुलाया जाता है; और यदि "target_preparer" टैग में संदर्भित वर्ग ITargetCleaner को लागू करता है , तो परीक्षण मोड समाप्त होने के बाद इसकी फाड़नेवाला विधि को लागू किया जाएगा।

अंतर्निहित सामान्य मॉड्यूल कॉन्फ़िगरेशन का उपयोग करने के लिए, अपने परीक्षण मॉड्यूल के लिए शीर्ष स्तर के फ़ोल्डर में एक नई फ़ाइल 'AndroidTest.xml' जोड़ें, और इसे निम्नलिखित सामग्री के साथ आबाद करें:

 <?xml version="1.0" encoding="utf-8"?>
<!-- [insert standard AOSP copyright here] -->
<configuration description="Test module config for Foo">
<!-- insert options here -->
</configuration>
 

एक उदाहरण के रूप में, हम निम्नलिखित विकल्प टैग जोड़ सकते हैं (ऊपर "टिप्पणी" डालें):

     <target_preparer class="com.android.tradefed.targetprep.RunCommandTargetPreparer">
        <option name="run-command" value="settings put secure accessibility_enabled 1" />
        <option name="teardown-command" value="settings put secure accessibility_enabled 0" />
    </target_preparer>
 

विकल्प परीक्षण के दोहन को कॉन्फ़िगर करेंगे:

  1. परीक्षण मॉड्यूल को लागू करने से पहले, उपकरण पर शेल कमांड "सेटिंग्स सुरक्षित एक्सेसिबिलिटी_एनेबल 1" निष्पादित करें
  2. परीक्षण मॉड्यूल समाप्त होने के बाद, शेल कमांड को निष्पादित करें "सेटिंग्स सुरक्षित पहुंच को अक्षम करें। अक्षम 0"

इस विशेष उदाहरण में, परीक्षण मॉड्यूल निष्पादन से पहले / बाद में पहुंच क्षमता सक्षम / अक्षम है। प्रदर्शित एक सरल उदाहरण के साथ, "विकल्प" टैग का उपयोग कैसे किया जाता है, इसके बारे में अधिक विवरण को कवर करना आवश्यक है। जैसा कि ऊपर दिखाया गया है, टैग में दो विशेषताएं हो सकती हैं: नाम, मान। नाम की विशेषता ने विकल्प के नाम को इंगित किया, और आगे एक कॉलोन द्वारा अलग किए गए दो भागों में टूट गया है: तैयारी करने वाले के लिए संक्षिप्त नाम, और तैयारकर्ता द्वारा प्रस्तुत वास्तविक विकल्प नाम।

मूल्य फ़ील्ड का सटीक उद्देश्य इस बात पर निर्भर करता है कि कैसे तैयारी करने वाले ने विकल्प को परिभाषित किया: यह एक स्ट्रिंग, एक संख्या, एक बूलियन या एक फ़ाइल पथ आदि हो सकता है। ऊपर दिए गए उदाहरण में, नाम "रन-कमांड: रन-कमांड" का अर्थ है कि हम "रन-कमांड" विकल्प के लिए मूल्य निर्धारित कर रहे हैं, जिसे लघु नाम "रन-कमांड" के साथ लक्ष्य तैयारी द्वारा परिभाषित किया गया है; और नाम "रन-कमांड: टर्डडाउन-कमांड" का अर्थ है कि हम "टियरडाउन-कमांड" विकल्प के लिए मूल्य निर्धारित कर रहे हैं, जिसे संक्षिप्त नाम "रन-कमांड" के साथ उसी लक्ष्य तैयारीकर्ता द्वारा परिभाषित किया गया है। यहाँ तीन सामान्य लक्ष्य तैयार करने वालों का सारांश दिया गया है:

  • वर्ग का नाम: PushFilePreparer

    • संक्षिप्त नाम : पुश-फ़ाइल
    • फ़ंक्शन : डिवाइस पर गंतव्य में परीक्षण केस फ़ोल्डर के तहत मनमानी फ़ाइलों को धक्का देता है
    • नोट :
      • यह प्रिपेयर फोल्डर से फोल्डर, या फाइल टू फाइल में पुश कर सकता है; वह है, आप डिवाइस पर किसी फ़ोल्डर के तहत एक फ़ाइल को धक्का नहीं दे सकते हैं: आपको उस फ़ोल्डर के तहत गंतव्य फ़ाइल नाम भी निर्दिष्ट करना होगा
    • विकल्प :
      • पुश: एक पुश-युक्ति, जिसे ' /path/to/srcfile.txt->/path/to/destfile.txt ' या ' /path/to/srcfile.txt->/path/to/destdir/ ' के रूप में स्वरूपित किया गया है। दोहराया जा सकता है यह पथ परीक्षण मॉड्यूल निर्देशिका या आउट निर्देशिका के सापेक्ष हो सकता है।
      • ** पोस्ट-पुश: ** सभी पुश करने का प्रयास करने के बाद डिवाइस पर चलने के लिए एक कमांड (` adb shell <your command> ` के साथ)। विशिष्ट उपयोग मामला अनुमतियों के लिए chmod का उपयोग किया जाएगा
  • वर्ग का नाम: InstallApkSetup

    • संक्षिप्त नाम: इंस्टॉल-एपीके
    • फ़ंक्शन: डिवाइस पर गंतव्य के अंतर्गत मनमानी apk फ़ाइलों को धक्का देता है
    • विकल्प:
      • परीक्षण-फ़ाइल-नाम: डिवाइस पर इंस्टॉल किए जाने वाले एपीके का नाम।
      • install-arg: अपर डैश पर जाने के लिए अतिरिक्त तर्क दिए जा सकते हैं, जिसमें प्रमुख डैश, जैसे "-d" शामिल हैं।
  • वर्ग का नाम: RunCommandTargetPreparer

    • संक्षिप्त नाम: रन-कमांड
    • फ़ंक्शन: परीक्षण मॉड्यूल निष्पादन से पहले या बाद में मनमाने ढंग से शेल कमांड निष्पादित करता है
    • विकल्प:
      • रन-कमांड: adb शेल कमांड रन करने के लिए। दोहराया जा सकता है
      • अश्रु-कमान: आंसू चरण के दौरान चलाने के लिए adb शेल कमांड। दोहराया जा सकता है

टेस्ट क्लास

टेस्ट को निष्पादित करने के लिए उपयोग करने के लिए एक टेस्ट क्लास ट्रेड फेडरेशन क्लास है।

 <test class="com.android.tradefed.testtype.AndroidJUnitTest">
  <option name="package" value="android.test.example.helloworld"/>
  <option name="runner" value="android.support.test.runner.AndroidJUnitRunner"/>
</test>
 

यहां तीन सामान्य परीक्षण कक्षाएं दी गई हैं:

  • वर्ग का नाम: GTest

    • संक्षिप्त नाम: gtest
    • फ़ंक्शन: एक परीक्षण जो दिए गए डिवाइस पर एक मूल परीक्षण पैकेज चलाता है।
    • विकल्प:
      • नेटिव-टेस्ट-डिवाइस-पाथ: डिवाइस पर वह पथ जहाँ देशी परीक्षण स्थित हैं।
  • वर्ग का नाम: इंस्ट्रूमेंटेशन

    • संक्षिप्त नाम: इंस्ट्रूमेंटेशन
    • फ़ंक्शन: एक टेस्ट जो दिए गए डिवाइस पर इंस्ट्रूमेंटेशन टेस्ट पैकेज चलाता है
    • विकल्प:
      • पैकेज: चलाने के लिए Android परीक्षण अनुप्रयोग का प्रकट पैकेज नाम।
      • वर्ग: परीक्षण वर्ग नाम चलाने के लिए।
      • विधि: परीक्षण विधि नाम चलाने के लिए।
  • वर्ग का नाम: AndroidJUnitTest

    • फ़ंक्शन: एक परीक्षण जो android.support.test.runner.AndroidJUnitRunner का उपयोग करके दिए गए डिवाइस पर इंस्ट्रूमेंटेशन टेस्ट पैकेज चलाता है। यह इंस्ट्रूमेंटेशन टेस्ट को निष्पादित करने का मुख्य तरीका है।