सुइट में कई टेस्ट मॉड्यूल शामिल होते हैं और इसमें टेस्ट कॉर्पस का साइज़ काफ़ी बड़ा हो सकता है. उदाहरण के लिए, Android Compatibility Test Suite (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
का इस्तेमाल करना होगा, क्योंकि हम उस निर्देश को फिर से चला रहे हैं जिसमें सिर्फ़ CtsGestureTestCases
शामिल है.
CTS-स्टाइल वाले सुइट के लिए, फिर से कोशिश करने की सुविधा कॉन्फ़िगर करना
फिर से कोशिश करने के लिए, पिछले नतीजों को प्रोटो फ़ॉर्मैट में एक्सपोर्ट करना ज़रूरी है. इन चीज़ों को जोड़ना ज़रूरी है:
<result_reporter class="com.android.compatibility.common.tradefed.result.suite.CompatibilityProtoResultReporter" />
इसे मुख्य निर्देश के एक्सएमएल कॉन्फ़िगरेशन में जोड़ना होगा. इससे नतीजे वाले फ़ोल्डर में test-record.pb
फ़ाइल बन जाएगी.
इसके बाद, फिर से कोशिश करने के लिए, CTS test-record.pb
और मौजूदा test_result.xml
के कॉम्बिनेशन से डेटा लोड करता है.