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