2011-06-19 10 views
5

पर स्वचालित परीक्षण को कैसे रोकें, मैं स्वत: कॉन्फ़िगर करने की कोशिश कर रहा हूं ताकि जब मैं अपना टेस्ट सूट चलाता हूं और मेरे पास असफल परीक्षण होता है, तो ऑटोटेस्ट परीक्षण बंद कर देता है और फिर परीक्षण करने से पहले मुझे बदलाव करने के लिए इंतजार कर रहा है। मेरे वर्तमान कॉन्फ़िगरेशन के साथ स्वचालित रूप से परीक्षण विफल रहता है जब यह एक असफल परीक्षण का सामना करता है जिससे इसे निपटने में परेशानी होती है (टर्मिनल में टैब रखना और हर बार मुझे असफल परीक्षण मिलना पड़ता है)।ज़ेन्टेस्ट - लाल

मैं आरएसपीसी, ज़ेंटेस्ट और स्पार्क का उपयोग कर रेल ऐप पर काम कर रहा हूं।

प्रासंगिक रत्न संस्करण:

autotest (4.4.6) 
rspec (2.6.0) 
rspec-core (2.6.4) 
rspec-expectations (2.6.0) 
rspec-mocks (2.6.0) 
rspec-rails (2.6.1) 
spork (0.9.0.rc8) 
ZenTest (4.5.0) 

मेरे .autotest फ़ाइल:

module Autotest::Notify 
    def self.notify title, msg, img, pri='low', time=3000 
    `notify-send -i #{img} -u #{pri} -t #{time} '#{msg}'` 
    end 

    Autotest.add_hook :ran_command do |autotest| 
    results = [autotest.results].flatten.join("\n") 
    output = results.slice(/(\d+)\s+examples?,\s*(\d+)\s+failures?(,\s*(\d+)\s+pending)?/) 
    folder = "~/.autotest_icons/" 
    if output =~ /[1-9]\d*\sfailures?/ 
     notify "FAIL:", "#{output}", folder+"failed.png", 'critical', 10000 
    elsif output =~ /[1-9]\d*\spending?/ 
     notify "PENDING:", "#{output}", folder+"pending.png", 'normal', 10000 
    else 
     notify "PASS:", "#{output}", folder+"passed.png" 
    end 
    end 
end 

नोट: मेरी .autotest फ़ाइल के अधिकांश लिनक्स में काम करता है, तो मेरे परीक्षण से गुजर रहे हैं प्रदर्शित करने के लिए पॉपअप मिल गया था या नाकाम रहने के।

मैं थोड़ी देर के लिए इस समस्या का उत्तर खोज रहा हूं और मुझे कोई भाग्य नहीं मिला है और मुझे ऑटोटेस्ट के लिए कुछ अच्छे दस्तावेज पर हाथ रखना मुश्किल है। मैं ज़ेनटेस्ट के लिए RDoc पर बहुत समय से देख रहा हूं और मुझे बस कुछ याद आना चाहिए।

कोई मदद, उदाहरणों के लिंक, आदि की सराहना की जाएगी।

+1

मैं अगर अपने '.autotest' फ़ाइल कुछ यह Autotest recurse बनाने के लिए क्या कर रही है सोच रहा हूँ। मैं एक समय में संभावित कारणों को हटाने की कोशिश करता हूं। उदाहरण के लिए, मिश्रण से 'स्पार्क' हटाएं, ज्ञात त्रुटि के साथ स्वत: चलाएं और देखें कि यह चल रहा है या नहीं। यदि ऐसा होता है, तो अपनी '.autotest' फ़ाइल को अस्थायी रूप से,' .autotest' फ़ाइल के बिना प्रभावी ढंग से चलाना और फिर से प्रयास करें। जब भी मैं एक गैर-स्पष्ट समस्या में भाग लेता हूं, तो मैं तर्क श्रृंखला को चलाने की कोशिश करता हूं और छोटे बदलाव करता हूं जब तक कि मैं समस्या को अलग नहीं कर सकता। – Midwire

+1

पीएस: दिए गए कोड परिवर्तन के बाद ऑटोटेस्ट को कभी भी परीक्षण चलाना नहीं चाहिए। इसे प्रभावित परीक्षणों को चलाया जाना चाहिए, परिणामों की रिपोर्ट करें (हरा या लाल) और फिर रोकें और अधिक परिवर्तनों की प्रतीक्षा करें। आपकी कॉन्फ़िगरेशन में कुछ इस विसंगति का कारण बन रहा है। – Midwire

+0

प्रतिक्रिया के लिए धन्यवाद। ईमानदार होने के लिए समस्या बल्कि यादृच्छिक लगती है। मैं थोड़ी देर के लिए एक ही कॉन्फ़िगरेशन के साथ चल रहा हूं और ऑटोटेस्ट केवल थोड़ी देर में लाल होने पर परीक्षण फिर से चलाएगा (शायद 1/10 बार)। मैं वास्तव में चल रहे परीक्षणों और अजीब स्वाभाविक व्यवहार के बीच संबंध नहीं ढूंढ सकता लेकिन मैं कोशिश करता रहूंगा। आपकी सलाह के लिए धन्यवाद और यदि मैं एक निश्चित उत्तर प्राप्त कर रहा हूं तो मैं इसे पोस्ट करूंगा। मेरी मुख्य समस्या यह है कि हर बार जब मुझे लगता है कि मैंने इसे ठीक कर दिया है, तो यह वही व्यवहार करता है जो अक्सर कम होता है। –

उत्तर

4

मैं एक ही समस्या थी और पाया कि मेरा विकास सर्वर लॉग फाइल करने के लिए लिख रहा था। बाद मैं अपने .autotest फ़ाइल को यह कहा, समस्या दूर चला गया:

Autotest.add_hook :initialize do |at| 
    at.add_exception(%r{^\./\.git}) 
    at.add_exception(%r{^\./log}) 
end 
1

मैंने जेनटेस्ट के साथ एक ही समस्या देखी जब मेरे पास एक मणि था जो जेनटेस्ट की निगरानी में एक निर्देशिका में डेटा लिख ​​रहा था। आईआईआरसी, यह एक मणि था जिसने पूर्ण-पाठ खोज की - इंडेक्स फ़ाइल जेनरेट की गई खोज जेनटेस्ट को फिर से चलाने के लिए ट्रिगर कर रही थी, जिससे इंडेक्स को पुन: उत्पन्न किया गया।

मैंने ग्रोउ नोटिफिकेशन को संशोधित करके समस्या को ट्रैक किया ताकि मुझे यह बताने के लिए कि कौन सी फाइलें ऑटोटेस्ट रन (मैं उस समय मैक पर चल रहा था) को ट्रिगर कर रहा था।

समाधान सूचकांक को अनदेखा करने के लिए यह कहने के लिए .autotest फ़ाइल को अपवाद/बहिष्कृत करना था।

(मैं सिर्फ देखा है: Spork is repeatedly re-running failing tests in autotest जो बहुत आपकी समस्या के समान लगता है)

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