टेस्ट को अपने-आप फिर से चलाना

टेस्ट किसी भी वजह से फ़ेल हो सकता है. कभी-कभी, टेस्ट को फिर से चलाने से ही वह पास हो जाता है. ऐसा इसलिए होता है, क्योंकि टेस्ट में गड़बड़ी हो सकती है. जैसे, बुनियादी ढांचे से जुड़ी समस्याएं. Tradefed को इस तरह कॉन्फ़िगर किया जा सकता है कि वह फिर से कोशिश करने की प्रोसेस को अपने-आप पूरा करे.

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

Tradefed में, iterations सुविधा का इस्तेमाल करके, टेस्ट को कई बार चलाया जा सकता है. इससे, टेस्ट के फ़ेल होने की वजह का पता लगाया जा सकता है. इस मामले में, सभी टेस्ट फिर से चलाए जाएंगे. अगर कोई भी इटरेशन पूरा नहीं होता है, तो टेस्ट पूरा नहीं होगा.

अपने-आप फिर से कोशिश करने की सुविधा चालू करना

अपने-आप फिर से कोशिश करने की सुविधा को RetryDecision ऑब्जेक्ट के ज़रिए कंट्रोल किया जाता है. यह सुविधा चालू करने के लिए, दो विकल्प देता है: max-testcase-run-count और retry-strategy.

max-testcase-run-count से यह तय होता है कि कितनी बार कोशिश की जाएगी या कितनी बार दोहराया जाएगा. यह कुकी, ऊपरी सीमा सेट करती है, ताकि बार-बार कोशिश करने से बचा जा सके. retry-strategy यह तय करता है कि फिर से कोशिश कैसे की जाए. ज़्यादा जानकारी के लिए, यहां दिए गए सेक्शन देखें.

अपने-आप फिर से कोशिश करने की सुविधा बंद करना

इस विकल्प का इस्तेमाल करें:

--retry-strategy NO_RETRY

फिर से कोशिश करने के दौरान हुई गड़बड़ियां

टेस्ट के फ़ेल होने पर, फिर से कोशिश करने के लिए इन विकल्पों का इस्तेमाल करें:

--retry-strategy RETRY_ANY_FAILURE --max-testcase-run-count X

यह प्रोसेस तब तक दोहराई जाएगी, जब तक यह पास नहीं हो जाती या जब तक कोशिशों की ज़्यादा से ज़्यादा संख्या पूरी नहीं हो जाती.

इटरेशन

जांच को कई बार फिर से चलाने के लिए, इन विकल्पों का इस्तेमाल किया जा सकता है:

--retry-strategy ITERATIONS --max-testcase-run-count X

नतीजे कैसे दिखते हैं?

नतीजे की जानकारी देने वाले लोगों को डिफ़ॉल्ट रूप से, सभी जवाबों के कुल नतीजे मिलेंगे.

उदाहरण के लिए: RETRY_ANY_FAILURE के लिए Fail और Pass का नतीजा, एग्रीगेट किया गया Pass होगा. ऐसा इसलिए, क्योंकि फिर से कोशिश करने पर गड़बड़ी ठीक हो गई.

रिपोर्टर को, एग्रीगेट न किए गए नतीजे मिल सकते हैं. इसके लिए, उन्हें ISupportGranularResults इंटरफ़ेस को बढ़ाना होगा. यह इंटरफ़ेस, विस्तृत (एग्रीगेट नहीं किए गए) नतीजों के साथ काम करता है.

लागू करने से जुड़ी जानकारी

टेस्ट केस लेवल पर फ़ेल हुए टेस्ट को फिर से चलाने के लिए, अपने-आप फिर से कोशिश करने की सुविधा चालू करने के लिए, ITestFilterReceiver लागू करें.

अगर ITestFilterReceiver को लागू नहीं किया जा सकता, तो IAutoRetriableTest को लागू किया जा सकता है. इससे, यह मैन्युअल तरीके से कंट्रोल किया जा सकता है कि फिर से चलाने की सुविधा कैसे काम करती है. InstalledInstrumentationsTest, उस इंटरफ़ेस को लागू करने का एक उदाहरण है.