2013-08-13 6 views
5

पर विफल रहता है मेरे पास आरएसपीईसी परीक्षण का एक समूह है और लगभग 30 उनमें कैपिबरा/पोल्टरजिस्ट के माध्यम से हेडलेस परीक्षण हैं। हर बार जब मैं स्थानीय रूप से परीक्षण चलाता हूं, तो परीक्षण के सभी 100% पास होते हैं।rspec/capybara/poltergeist परीक्षण 100% स्थानीय रूप से पास करते हैं, यादृच्छिक परीक्षण टीमसिटी सीआई सर्वर

मैंने हाल ही में एक टीमसिटी निरंतर एकीकरण सर्वर स्थापित किया है और परीक्षण के परिणाम बेहद असंगत हैं।

मैंने परीक्षणों के बीच कोई भी बदलाव किए बिना परीक्षण 10 बार चलाया। राउंड के केवल 1 में 100% पास हुए। अन्य में 1-2 विफलताओं (उनमें से अधिकतर समान नहीं थे), सभी हेडलेस ब्राउज़र परीक्षण से संबंधित थे।

ActionView::Template::Error: Couldn't find Spree::Address with id=1072978592 

Stack trace: 
./app/models/spree/order_decorator.rb:50:in `initialize_default_address' 
./app/models/spree/order_decorator.rb:42:in `initialize_shipment' 
./app/views/layouts/core.html.erb:23:in `_8cb98e121af585621c1d08e3ec1f6022' 
./app/views/layouts/default.html.erb:14:in `_588b3208edc213a939dffd2ad73f4f26' 

इस विफलता अजीब है क्योंकि मैं समारोह है कि एक आईडी के साथ एक पते के लिए लग रहा है और एक factorygirl मॉडल रिटर्न टोंटदार: यहाँ विफलताओं में से एक का एक उदाहरण है। मुझे स्थानीय रूप से यह समस्या नहीं है।

यहाँ परीक्षण रन में से एक से एक और त्रुटि है:

Capybara::ExpectationNotMet: expected to find link "10" but there were no matches 

Stack trace: 
./spec/features/simply_ship_spec.rb:102:in `block (2 levels) in <top (required)>' 
फिर

, जब मैं इस स्थानीय रूप से चलाने के लिए, इस त्रुटि नहीं होता है, और जब मैं सेलेनियम के लिए स्विच और परीक्षण देखने के लिए, लिंक स्पष्ट रूप से वहाँ है।

परियोजना में कोई भी अपडेट किए बिना, इन दोनों त्रुटियों (सभी नहीं, लेकिन कुछ उदाहरण) व्यक्तिगत रूप से अलग-अलग रनों पर हुए। क्या किसी के पास कोई विचार है कि यह क्यों हो रहा है?

rspec-रेल 2.14.0 capybara 2.1 poltergeist 1.3.0 रेल 3.2.14 रूबी 1.9.3 p448

उत्तर

3

आप capybara-screenshot gem विफल रहता है के दौरान पेज राज्य को स्पष्ट करने की कोशिश कर सकते हैं।

2

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

आप देख सकते हैं कि ये विफलताओं कहां हो रही हैं और यह सुनिश्चित कर रहा है कि एप्लिकेशन जारी रखने से पहले पकड़ा गया हो।

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