2015-05-21 6 views
9

का उपयोग कर एक ही परीक्षण के साथ एकाधिक होस्टों का परीक्षण करना सर्वरस्पेक साइट का उन्नत सुझाव अनुभाग एक ही परीक्षण सेट के साथ एकाधिक होस्टों का परीक्षण करने का एक उदाहरण दिखाता है। मैंने अपना खुद का उदाहरण बनाया है (https://gist.github.com/neilhwatson/81249ad393800a76a8ad), लेकिन समस्याएं हैं Iसर्वरपेक

पहली समस्या यह है कि परीक्षण बहुत से आगे बढ़ने और तालमेल रखने के बजाए पहली विफलता पर रोक लगाता है। दूसरी बात यह है कि विफलता आउटपुट यह इंगित नहीं करता कि किस मेजबान विफलता हुई। इन समस्याओं को ठीक करने और सभी मेजबानों के लिए अंतिम रिपोर्ट तैयार करने के लिए मैं क्या कर सकता हूं?

उत्तर

2

पहले अंक के लिए, ServerSpec डिफ़ॉल्ट रूप से आपके सभी परीक्षण चलाएगा। हालांकि, चूंकि आपके पास एक लूप है जो प्रत्येक वातावरण के लिए Rake कार्य निष्पादित करता है, तो विफलता होने वाला पहला वातावरण कार्य को विफल करने का कारण बनता है और इसलिए अपवाद उठाया जाता है और आपके शेष कार्य नहीं चलते हैं।

मैंने आपके दिमाग को फोर्क किया है और Rake task to surround it with a begin/rescue अपडेट किया है।

... 
begin 
    desc "Run serverspec to #{host}" 
    RSpec::Core::RakeTask.new(host) do |t| 
    ENV['TARGET_HOST'] = host 
    t.pattern = "spec/base,cfengine3/*_spec.rb" 
    end 
rescue 
end 
... 

दूसरी समस्या के लिए, यह ServerSpec की तरह नहीं दिखता होगा उत्पादन जो पर्यावरण परीक्षण में चल रहे हैं। लेकिन चूंकि अद्यतन सार से पता चलता मेजबान हम add an RSpec configuration है कि उपयोग कर सकते हैं spec_helper.rb में सेट हो जाता है कि कि after(:each) सेट करता है और त्रुटियों पर केवल host आउटपुट करता है। प्रासंगिक कोड में परिवर्तन एक fork of the gist में हैं, लेकिन मूल रूप से आप बस अपने spec_helper.rb में नीचे टुकड़ा आवश्यकता होगी:

RSpec.configure do |c| 
    c.after(:each) do |example| 
    if example.exception 
     puts "Failed on #{host_run_on}" 
    end 
    end 
end 
+0

करीब, लेकिन मैं अभी भी नहीं बता सकता कि मेजबान विफलता पर होता है। नया सारांश: https://gist.github.com/neilhwatson/1d41c696102c01bbb87a –

+0

एक नई त्रुटि: उदाहरण के भीतर से 'उदाहरण' उपलब्ध नहीं है (उदाहरण के लिए' यह 'ब्लॉक) या उदाहरणों के दायरे में चलने वाली संरचनाओं से (उदाहरण के लिए 'पहले', 'चलो', आदि)। यह केवल एक उदाहरण समूह (उदाहरण के लिए 'वर्णन' या 'संदर्भ' ब्लॉक) पर उपलब्ध है। –

+0

आह, मेरा बुरा, यह आरएसपीसी 2 से है, आरएसपीईसी नहीं 3. यह आरएसपीईसी 3: http://stackoverflow.com/a/26164289/238292 में ऐसा किया गया है। मैं प्रतिक्रिया अद्यतन करूंगा। –

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

  • कोई संबंधित समस्या नहीं^_^