सुइट सेट करें

संग्रह की मदद से व्यवस्थित रहें अपनी प्राथमिकताओं के आधार पर, कॉन्टेंट को सेव करें और कैटगरी में बांटें.

ट्रेडफेड में सुइट उस सेटअप को संदर्भित करता है जहां एक सामान्य परीक्षण धावक के तहत कई परीक्षण चल रहे हैं जो समग्र निष्पादन को संचालित करता है।

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

परिभाषाएं

  • सूट: एक ही आमंत्रण के तहत अपने परिणामों की रिपोर्ट करने के लिए एक समान शीर्ष-स्तरीय सेटअप के तहत चलाने के लिए कॉन्फ़िगर किए गए परीक्षण मॉड्यूल का सेट।
  • शीर्ष-स्तरीय सेटअप: किसी भी परीक्षण मॉड्यूल को चलाने से पहले डिवाइस पर सेटअप लागू किया गया।
  • मुख्य विन्यास: सूट-स्तरीय ट्रेडफेड एक्सएमएल कॉन्फ़िगरेशन जो बताता है कि कौन से मॉड्यूल चलाना चाहिए और कौन सा शीर्ष-स्तरीय सेटअप का उपयोग किया जाना चाहिए।
  • मॉड्यूल-स्तरीय सेटअप: मॉड्यूल चलाने से ठीक पहले डिवाइस पर सेटअप लागू किया गया। इन्हें मॉड्यूल-विशिष्ट सेटअप के रूप में भी जाना जाता है।
  • मॉड्यूल कॉन्फ़िगरेशन: AndroidTest.xml ट्रेडफेड एक्सएमएल कॉन्फ़िगरेशन को संदर्भित करता है जो मॉड्यूल का वर्णन करता है और कौन सा मॉड्यूल-स्तरीय सेटअप किया जाना चाहिए।
  • मॉड्यूल: एक सेटअप चरण ( मॉड्यूल-स्तरीय सेटअप ), एक परीक्षण निष्पादन चरण और एक टियर डाउन चरण से बना परीक्षण इकाई।

  • इंट्रा-मॉड्यूल पुन: प्रयास: मॉड्यूल के अंदर हार्नेस द्वारा किया गया स्वचालित पुन: प्रयास।

  • सुइट पुन: प्रयास: सूट के पहले विफल परीक्षणों का पूर्ण पुन: संचालन।

ITestSuite संरचना

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

हम कभी-कभी ITestSuite को सुइट रनर के रूप में संदर्भित करेंगे।

निष्पादित करते समय सुइट रनर इन चरणों का पालन करता है:

  1. मॉड्यूल के कॉन्फ़िगरेशन को लोड करें और निर्धारित करें कि कौन सा सेट चलना चाहिए।
  2. प्रत्येक मॉड्यूल चलाएँ: a. मॉड्यूल-स्तरीय सेटअप चलाएँ b. मॉड्यूल परीक्षण चलाएँ c. मॉड्यूल-स्तर के आंसू चलाएं
  3. परिणामों की रिपोर्ट करें

शीर्ष-स्तरीय सेटअप

ट्रेडफेड के दृष्टिकोण से, ITestSuite सिर्फ एक और परीक्षा है। यह एक जटिल है लेकिन अभी भी किसी अन्य IRemoteTest की तरह ही एक परीक्षण है। इसलिए ट्रेडफेड कॉन्फ़िगरेशन में सूट रनर को निर्दिष्ट करते समय, ट्रेडफेड कॉन्फ़िगरेशन के सामान्य पैटर्न का पालन करेगा: चल रहा है build_provider , target_preparer , test (इस मामले में हमारा सूट), और target_cleaner

ITestSuite वाले Tradefed कॉन्फ़िगरेशन में यह क्रम शीर्ष-स्तरीय सेटअप है।

उदाहरण:

<configuration description="Common config for Compatibility suites">

    <build_provider class="com.android.compatibility.common.tradefed.build.CompatibilityBuildProvider" />
    <!-- Setup applied before the suite: so everything running in the suite will
    have this setup beforehand -->
    <target_preparer class="com.android.tradefed.targetprep.RunCommandTargetPreparer">
        <option name="run-command" value="settings put global package_verifier_enable 0" />
        <option name="teardown-command" value="settings put global package_verifier_enable 1"/>
    </target_preparer>

    <!-- Our ITestSuite implementation -->
    <test class="com.android.compatibility.common.tradefed.testtype.suite.CompatibilityTestSuite" />

    <result_reporter class="com.android.compatibility.common.tradefed.result.ConsoleReporter" />
</configuration>

मॉड्यूल मेटाडेटा

हम परीक्षण मॉड्यूल AndroidTest.xml में निर्दिष्ट मॉड्यूल मेटाडेटा अतिरिक्त जानकारी कहते हैं। वे आपको मॉड्यूल के बारे में अतिरिक्त जानकारी निर्दिष्ट करने की अनुमति देते हैं, और मॉड्यूल को मेटाडेटा का उपयोग करके फ़िल्टर किया जा सकता है।

उदाहरण मेटाडेटा:

<option name="config-descriptor:metadata" key="component" value="framework" />
<option name="config-descriptor:metadata" key="parameter" value="instant_app" />

मेटाडेटा पर उदाहरण फ़िल्टर:

--module-metadata-include-filter component=framework

उपरोक्त सभी मॉड्यूल को घटक मेटाडेटा के रूप में एक ढांचे के साथ चलाएगा।

पूर्ण AndroidTest.xml उदाहरण:

<configuration description="Config for CTS Gesture test cases">
    <option name="test-suite-tag" value="cts" />
    <!-- Metadata -->
    <option name="config-descriptor:metadata" key="component" value="framework" />
    <option name="config-descriptor:metadata" key="parameter" value="instant_app" />
    <!-- End: metadata -->
    <target_preparer class="com.android.tradefed.targetprep.suite.SuiteApkInstaller">
        <option name="cleanup-apks" value="true" />
        <option name="test-file-name" value="CtsGestureTestCases.apk" />
    </target_preparer>
    <test class="com.android.tradefed.testtype.AndroidJUnitTest" >
        <option name="package" value="android.gesture.cts" />
        <option name="runtime-hint" value="10m50s" />
    </test>
</configuration>

पैरामीटरयुक्त मॉड्यूल

एक विशेष मेटाडेटा प्रकार है parameter

<option name="config-descriptor:metadata" key="parameter" value="instant_app" />

यह मेटाडेटा निर्दिष्ट करता है कि मॉड्यूल को एक अलग मोड में निष्पादित करने की आवश्यकता होगी, उदाहरण के लिए एक मानक ऐप मोड के बजाय एक त्वरित ऐप के रूप में।

सभी संभावित मोड या पैरामीटर मॉड्यूल पैरामीटर द्वारा वर्णित हैं और मॉड्यूल पैरामीटर हेल्पर में एक संबद्ध हैंडलर है जो आपको विशेष मोड में निष्पादित करने के लिए मॉड्यूल सेटअप को बदलने की अनुमति देता है।

उदाहरण के लिए, इंस्टेंट ऐप मोड एपीके इंस्टॉलेशन को इंस्टेंट मोड के रूप में बाध्य करेगा।

पैरामीटरकरण होने के लिए, कमांड लाइन को इसे इसके माध्यम से सक्षम करने की आवश्यकता है:

--enable-parameterized-modules

किसी दिए गए मोड को चलाना भी संभव है:

--enable-parameterized-modules --module-parameter <Mode>

--enable-parameterized-modules --module-parameter INSTANT_APP

जब एक मॉड्यूल का एक पैरामीटरयुक्त संस्करण चलता है, तो यह एक पैरामीटरयुक्त मॉड्यूल नाम के तहत इसके परिणामों की रिपोर्ट करेगा, उदाहरण के लिए CtsGestureTestCases[instant] बनाम आधार CtsGestureTestCases।