2015-05-21 30 views
9

Serverspec sitesinin Gelişmiş İpuçları bölümü, aynı sınama kümesine sahip birden çok ana bilgisayarı sınamaya yönelik bir örnek gösterir. Kendi kendime bir örnek oluşturdum (https://gist.github.com/neilhwatson/81249ad393800a76a8ad), ama problemler var. İlk problem, testlerin, partiden devam etmek ve bir taksiyi tutmaktan ziyade ilk başarısızlıkta durmasıdır. İkincisi, hata çıkışının, hatanın gerçekleştiği ana bilgisayarda gösterilmemesidir. Bu sorunları düzeltmek ve tüm ana bilgisayarlar için nihai bir rapor hazırlamak için ne yapabilirim?Serverpec kullanılarak aynı sınama ile birden çok ana bilgisayarı sınama

cevap

2

İlk sayı için ServerSpec varsayılan olarak tüm testlerinizi çalıştıracaktır. Ancak, her ortam için bir Rake görevini yürüten bir döngüye sahip olduğunuzdan, bir hataya sahip olan ilk ortam görevin başarısız olmasına neden olur ve bu nedenle bir istisna kaldırılır ve görevlerin geri kalanı çalışmaz.

Özür dilerim ve Rake task to surround it with a begin/rescue güncelleyin. İkinci sorun için

... 
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 
... 

, bu ServerSpec gibi görünmüyor olacak hangi güncellenen Gist konak biz add an RSpec configuration için kullanabilirsiniz spec_helper.rb ayarlanan alır gösterir beri testler çalışan. Ama olan çevre çıkışı o after(:each)'u kurar ve yalnızca host hatalarını verir. İlgili kod değişiklikleri bir fork of the gist içindedir fakat temelde sizin spec_helper.rb aşağıda pasajı olmanız gerekecek:

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

Closer, ama yine de neler olup bittiğini konak yetmezliği söyleyemem. Yeni özellik: https://gist.github.com/neilhwatson/1d41c696102c01bbb87a –

+0

Yeni bir hata: 'example' örnekte mevcut değil (örneğin bir' it' bloğu) veya bir örnek kapsamında çalışan yapılardan (örneğin 'önce', 'let', vb). Sadece örnek bir grupta (ör. Bir "açıklama" veya "içerik" bloğu) kullanılabilir. –

+0

10 Ahh, kötüyüm, RSpec 2'den değil, RSpec 3'ten değil. Bu şekilde RSpec 3'te yapılıyor: http://stackoverflow.com/a/26164289/238292. Yanıtı güncelleyeceğim. –

İlgili konular