एक परीक्षण किसी भी कारण से विफल हो सकता है, और कभी-कभी परीक्षण को फिर से चलाना इसे फिर से पास करने के लिए पर्याप्त होता है (फ्लैकनेस के कारण, जैसे कि अंतर्निहित बुनियादी ढांचे में मुद्दों से)। आप स्वचालित रूप से पुनः प्रयास करने के लिए ट्रेडफेड को कॉन्फ़िगर कर सकते हैं।
ऑटो-पुन: प्रयास का मूल सभी परीक्षणों को फिर से चलाने से बचना है; यह केवल असफल परीक्षणों को फिर से चलाता है, जिसके परिणामस्वरूप निष्पादन समय में बड़ी बचत होती है।
ट्रेडफेड पुनरावृत्तियों की सुविधा के माध्यम से चंचलता का पता लगाने के लिए कई बार चल रहे परीक्षणों का भी समर्थन करता है। इस मामले में, सभी परीक्षण फिर से चलाए जाएंगे, और यदि कोई भी पुनरावृत्ति विफल हो जाती है तो परीक्षण विफल हो जाएगा।
सुविधा को सक्षम करना
स्वचालित पुनर्प्रयास को 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 उस इंटरफ़ेस का एक उदाहरण कार्यान्वयन है।