2012-12-15 14 views
7

kaçırmak gibi görünüyor. end_at nesne üzerinde bir ActiveRecord niteliktirSimplecov kapsama raporda bazı çizgiler Sadece bir çizgi testi ile icra edilmişse simplecov nasıl belirlediği bazı açıklama sonra

def over? 
    end_at < Time.zone.now 
end 

ki burada:

Aşağıdaki yöntemi vardır. şu spec icra edilmektedir

:

coverage report

ben hata ayıklama modunda testi ettik: kapsama spec çalıştırdıktan sonra

describe CalendarEntry do 
    it 'can determine that an event has ended' do 
    @entry.end_at = 1.day.ago 
    @entry.over?.should be_true 
    end 
end 

, aşağıdaki sonucunu gösterir Bu satırda bir kırılma noktası ile ve spec aslında gerçekten vurduğunu doğruladı.

kapsamadığı gibi bu, bu yöntemde sadece bu hattı izole edilmez, bir ActiveRecord ilişkili gaz giderici kullanımını içerir, her satır gösterilir. Tesadüf olabilir, ama biraz garip görünüyor.

Çevre: yakut 1.9.3-p327 (MRI), 3.2.8, 0.7.1 simplecov, 2.10.0 RSpec raylar.

simplecov o kapsamadığı sanıyor neden herhangi bir fikir? Tamam

+0

sen 'üzerinde?' Sahte dönecektir bir test var mı? Bu, vurulma yöntemini açıklayabilir, ancak bu kodun test edilmekte olan tüm sonuçlarını içermez. –

+0

Teşekkür @PaulFioravanti, Ben de olumsuz bir test var ve bu kapsama oturumunun bir parçası olarak çalıştırıldı. –

+0

Sorunun ne olduğunu anlayabildiniz mi? Eğer öyleyse, lütfen paylaşın! Değilse, sorunuzu, spesifikasyonunuzun tam metnini içerecek şekilde düzenleyebileceksiniz, örn. '@ Entry' tanımlandığında ve testin 'konusu' neyin olduğu. –

cevap

1

yüzden JRuby Windows üzerinde çalışan sorunun aynı tür ekleyin. Yanıt aslında bana soruldu, Simplecov hata ayıklama modunda çalıştırılmadığında bazı satırları özleyebilir.

(j)ruby --debug -S rspec spec 

--debug seçeneği ile işe yaradı ve beklediğim gibi% 100 kapsama döndüm.

İlgili konular