Google is committed to advancing racial equity for Black communities. See how.
इस पेज का अनुवाद 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. परीक्षण मॉड्यूल समाप्त होने के बाद, शेल कमांड निष्पादित करें "सेटिंग्स सुरक्षित पहुंच को अक्षम कर दिया गया है।

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

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

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

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

    • संक्षिप्त नाम: इंस्टॉल-एपीके
    • फ़ंक्शन: डिवाइस पर गंतव्य के अंतर्गत मनमानी APK फ़ाइलों को धक्का देता है
    • विकल्प:
      • परीक्षण-फ़ाइल-नाम: डिवाइस पर इंस्टॉल किए जाने वाले एपीके का नाम।
      • इंस्टॉल-आर्ग: अपर डैश पर जाने के लिए अतिरिक्त तर्क दिए जा सकते हैं, जिसमें प्रमुख डैश, जैसे "-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 का उपयोग करके दिए गए डिवाइस पर इंस्ट्रूमेंटेशन टेस्ट पैकेज चलाता है। यह इंस्ट्रूमेंटेशन टेस्ट को निष्पादित करने का मुख्य तरीका है।