RSpec 3.4.4'te sınamaları saran ve on saniye sonra zaman aşımına neden olan bir komut dosyası var.Genel RSpec meta verilerini nasıl ayarlayabilirim?
TIMEOUT = 10
RSpec.configure do | config |
config.around do |example|
timeout = Float(example.metadata[:timeout]) rescue TIMEOUT
begin
Timeout.timeout(timeout) { example.run }
rescue Timeout::Error
skip "Timed out after #{timeout} seconds"
end
end
end
Bu komut dosyası, merkezi bir konumda - ~/lib/spec_helper.rb
- ve benim depoları spec_helper
s tarafından require
ö.
example.metadata[:timeout]
yapılandırabilecektir istiyorum
.
.rspec
- benim için ideal bir çözüm olarak bir seçenek olarak ayarlamayı denedim - ama tabii ki bunun gibi özel seçenekleri tanımıyor. Komut hattının da aynı şeyi yapmasını beklerdim.
Test paketindeki tüm örneklerin meta verilerini ayarlamanın bir yolu var mı? o izin verdiği
etiket seçeneği bunun için iyi bir adaydır: Apart iyi bir fikir, bunu tek yolu muhtemelen mevcut seçeneklerden kötüye kullanarak değil ki, RSpec aralıklarında hack gelen
üzerine edin Aslında, siz [aslen] yazdıkça, zaman aşımını sıfır olarak ayarlamak, örneğin çalışmayı durduracaktır. Neyse ki, yapmanız gereken tek şey 'tim'.sonraki.timeout (0) {...}' zaman aşımına uğramaz. – PJSCopeland
ah aslında bundan emin değildim ... Cevabını değiştireceğim – David