2012-03-23 14 views
12

हमारे निर्माण में कुछ ऐसे परिदृश्य हैं जो हमारे नियंत्रण से बाहर होने वाले कारणों के लिए असफल होते हैं या ठीक से डीबग करने में बहुत अधिक समय लेते हैं। चीजें जैसे कि सिंक्रोनस जावास्क्रिप्ट इत्यादिककड़ी फिर से चलाने के साथ स्वचालित रूप से असफल परिदृश्य?

वैसे भी बिंदु कभी-कभी वे कभी-कभी काम नहीं करते हैं, इसलिए मैं सोच रहा था कि एक परिदृश्य में टैग जोड़ने के लिए अच्छा लगेगा जैसे @rerun_on_failure या @retry जो दृश्यों को फिर से प्रयास करेगा निर्माण में असफल होने से पहले एक्स बार।

मैं समझता हूँ कि यह एक आदर्श समाधान नहीं है, लेकिन परीक्षण अभी भी मूल्यवान है और हम मिथ्या नकारात्मक

वास्तविक परीक्षा है कि एक लिंक पर क्लिक करने के लिए विफल रहता है और एक ट्रैकिंग घटना उम्मीद बिना इसे रखने के लिए चाहते हैं विश्लेषिकी के लिए सर्वर (जावास्क्रिप्ट के माध्यम से) पर भेजा जाना चाहिए। कभी-कभी सेलेनियम वेब-ड्राइवर अगले पृष्ठ को बहुत तेज़ लोड करता है और ईवेंट में भेजने का समय नहीं होता है।

धन्यवाद

+2

विफल रहता है आप wait_until का उपयोग कर सकते है? http://stackoverflow.com/questions/3876412/capybara-doesnt-recognize- गतिशील-added-dom-elements – michaeltwofish

+1

हम अन्य परीक्षणों के लिए wait_until का उपयोग करते हैं लेकिन इस उदाहरण में यह लागू नहीं है। मैं प्रश्न को अद्यतन क्यों करूंगा। धन्यवाद – amleszk

+0

मैं यह सोचने में मदद नहीं कर सकता कि ककड़ी हुक इसे प्राप्त कर सकता है। संभवतः एक चारों ओर हुक। हालांकि, यह परिदृश्य को फिर से निष्पादित करने जितना आसान नहीं है क्योंकि आपको अपने कैपिबरा ड्राइवर को सही स्थिति में भी होना चाहिए। मैंने इसे स्वयं काम करने की कोशिश की है लेकिन मैं अभी तक ऐसा करने में सक्षम नहीं हूं। – iainbeeston

उत्तर

9

मैं तुम्हें क्या वर्णन कर रहे हैं की तरह कुछ लिख पर विचार किया गया है, लेकिन मैं इस पाया:

http://web.archive.org/web/20160713013212/http://blog.crowdint.com/2011/08/22/auto-retry-failed-cucumber-tests.html

आप के लिए होने से थक रहे हैं फिर से लात गैर-निर्धारिती विफलताओं के कारण आपके सीआई सर्वर में बनाता है, यह पोस्ट आपके लिए है।

संक्षेप में: वह ककड़ी नामक एक नया रेक कार्य करता है: पुन: प्रयास करें जो विफल परीक्षणों को पुनः प्रयास करने के लिए rerun.txt का उपयोग करता है। अधिकांश 3x (उदाहरण के लिए) पर पुनः प्रयास करने के लिए वहां कुछ लूपिंग जोड़ना बहुत आसान होना चाहिए।

+2

यह दिलचस्प है, लेकिन मैं था केवल इसे अंतिम उपाय के रूप में उपयोग करें। करने के लिए सबसे अच्छी बात यह है कि परीक्षण से सभी गैर-निर्धारक व्यवहार को हटा दें। –

+0

@ मार्क यह जावास्क्रिप्ट परीक्षणों के लिए काफी कठिन है जो गैर-निर्धारिती कारणों के लिए गैर-निर्धारणात्मक रूप से विफल रहता है –

3

अधिक ककड़ी के हाल के संस्करणों एक पुनः प्रयास झंडा

cucumber --retry 2 

परीक्षण दो बार पुनः प्रयास करेगा अगर यह

+0

यह नया चयनित उत्तर होना चाहिए। यहां तक ​​कि अगर उस समय neomindryan का जवाब बहुत अच्छा था, तो यह जवाब इसे पूरी तरह से अप्रचलित बनाता है। – sergut

संबंधित मुद्दे