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

जांच किसी भी वजह से विफल हो सकती है, और कभी-कभी उसे फिर से चलाना ही इसे फिर से पास किया जा सकता है (फ़्लेकनेस की वजह से, जैसे कि बुनियादी ढांचा). फिर से कोशिश करने के लिए, Trefed को कॉन्फ़िगर किया जा सकता है स्वचालित रूप से.

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

Trefed ऐप्लिकेशन, यह पता लगाने के लिए कई बार टेस्ट करने की सुविधा देता है दोहराव की सुविधा से, गड़बड़ियों को ठीक करने में मदद मिलती है. इस मामले में, सभी टेस्ट उसे फिर से चलाएं और किसी भी बार का टेस्ट फ़ेल होने पर टेस्ट पूरा नहीं होगा.

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

अपने-आप फिर से कोशिश करने की सुविधा को 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, उस इंटरफ़ेस को लागू करने का उदाहरण है.