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