सुइट को दोबारा चलाने की सुविधा का इस्तेमाल करना

सुइट में कई टेस्ट मॉड्यूल शामिल होते हैं और इसमें टेस्ट कॉर्पस का साइज़ काफ़ी बड़ा हो सकता है. उदाहरण के लिए, Android के साथ काम करने की जांच करने वाले टूल (CTS) में सैकड़ों मॉड्यूल और लाखों टेस्ट केस शामिल होते हैं.

ऐसा हो सकता है कि अलग-अलग जांच में पूरी तरह से शामिल न होने की वजह से, कई टेस्ट फ़ेल हो जाएं या डिवाइसों को खराब स्थिति में पड़ सकता है.

सुइट को फिर से टेस्ट करने की सुविधा, इन मामलों में काम आती है: इससे आपको पूरे सुइट के बजाय, सिर्फ़ उन टेस्ट को फिर से चलाने की सुविधा मिलती है जो काम नहीं कर रहे हैं. इससे, गड़बड़ी और अलग-अलग टेस्ट के बीच के अंतर को कम करने में मदद मिलती है. अगर कोई जांच बार-बार पूरी नहीं हो पा रही है, तो दोबारा कोशिश करने पर भी वह पूरी नहीं होती. साथ ही, आपको यह साफ़ तौर पर पता चलता है कि कोई असल समस्या है.

सुइट में फिर से कोशिश करें

नतीजों को फिर से पाने के लिए, पिछले नतीजों को पढ़ना और पिछले अनुरोध को फिर से चलाना होता है.

फिर से कोशिश करने के लिए, मुख्य इंटरफ़ेस ITestSuiteResultLoader है. इसकी मदद से, पिछले नतीजे और पिछली कमांड लाइन को लोड किया जा सकता है.

RetryRescheduler इसके बाद, इस जानकारी का इस्तेमाल करके पिछले निर्देश को फिर से बनाया जाता है. साथ ही, कुछ फ़िल्टर में जानकारी भरी जाती है, ताकि सिर्फ़ पिछले उन टेस्ट को फिर से चलाया जा सके जो पहले पूरे नहीं हो पाए थे या जिन्हें पूरा नहीं किया गया था.

सुइट को फिर से चलाने का उदाहरण: CTS

CTS में, फिर से कोशिश करने का कॉन्फ़िगरेशन यह है:

<configuration description="Runs a retry of a previous CTS session.">
    <object type="previous_loader" class="com.android.compatibility.common.tradefed.result.suite.PreviousResultLoader" />
    <test class="com.android.tradefed.testtype.suite.retry.RetryRescheduler" />

    <logger class="com.android.tradefed.log.FileLogger">
        <option name="log-level-display" value="WARN" />
    </logger>
</configuration>

यह उन ज़्यादातर सुइट पर लागू होता है जो इसे बढ़ाते हैं. उदाहरण के लिए, VTS.

इसे इससे शुरू किया जाएगा:

cts-tradefed run retry --retry <session>

CTS कंसोल में पिछले नतीजों की सूची बनाकर, सेशन को ढूंढा जा सकता है:

cts-tf > l r
Session  Pass  Fail  Modules Complete  Result Directory     Test Plan  Device serial(s)  Build ID   Product
0        2092  30    148 of 999        2018.10.29_14.12.57  cts        [serial]          P          Pixel

ओरिजनल कमांड को फिर से लोड किया जाएगा और अतिरिक्त फ़िल्टर के साथ फिर से चलाया जाएगा. इसका मतलब है कि अगर आपकी मूल कमांड में कुछ विकल्प शामिल थे, तो वे फिर से कोशिश करने के दौरान भी शामिल होंगे.

उदाहरण के लिए:

cts-tradefed run cts-dev -m CtsGestureTestCases

ऊपर दिए गए तरीकों को करने की कोशिश हमेशा CtsGestureTestCases तक ही सीमित होती है, क्योंकि हम उस आदेश को फिर से प्रयास कर रहे हैं जिसमें केवल वह शामिल है.

सीटीएस-स्टाइल सुइट के लिए फिर से कोशिश करें को कॉन्फ़िगर करें

फिर से कोशिश करने के लिए, पिछले नतीजों को एक्सपोर्ट करना ज़रूरी है प्रोटो फ़ॉर्मैट में भी डाल सकते हैं. इन चीज़ों को जोड़ना ज़रूरी है:

<result_reporter class="com.android.compatibility.common.tradefed.result.suite.CompatibilityProtoResultReporter" />

इसे मुख्य निर्देश के एक्सएमएल कॉन्फ़िगरेशन में जोड़ना होगा. इससे नतीजे वाले फ़ोल्डर में test-record.pb फ़ाइल बन जाएगी.

इसके बाद, सीटीएस फिर से कोशिश करता है और test-record.pb और मौजूदा test_result.xml को फिर से कोशिश करें.