2012-10-02 12 views
7

pracuję w małej gem i zawarte simplecov do spec_helper.rb dwie linie:SimpleCov 0% pokrycia

require 'simplecov' 
SimpleCov.start 

Kiedy uruchomić rspec test, w simplecov wydaje założone poprawnie, ale raport nie jest:

Finished in 0.00214 seconds 
8 examples, 0 failures 

Coverage report generated for /home/...... 
spec to /home/megas/Work/calc/coverage. 0/0 LOC (0.0%) covered. 

Co może być problem i jak go rozwiązać? Dzięki

Odpowiedz

19

Również upewnić się, aby umożliwić simplecov (a.k.a. SimpleCov.start) na bardzo początku pliku; zwłaszcza zanim zażądasz swojego kodu.

+2

To był mój problem; Dziękuję Ci. Ktoś inny wskazał pomocny sposób diagnozy: Dodaj komunikat "puts" do początku pliku aplikacji/modelu, a drugi do 'spec_helper.rb' tuż obok' SimpleCov.start' - jeśli widzisz model debugowania wyjścia przed wyjściem do debugowania SimpleCov, wiesz, że twój model jest ładowany przed SimpleCov. – bjnord

+0

naprawiono to dla mnie, dzięki! – lfender6445

+0

To naprawiło, wielkie dzięki! –

2

Miałem takie same objawy. Moim problemem było to, że w moim pliku testowego:

#spec/oneclass_spec.rb 
require 'oneclass' 
require 'spec_helper' 

...Rest of the test file 

I musiałem zmienić kolejność require s do:

#spec/oneclass_spec.rb 
require 'spec_helper' 
require 'oneclass' 

...Rest of the test file 

Hope this helps kogoś, ja wariuje ...

0

Na wypadek, gdyby powyższe dwie odpowiedzi nie zadziałały (jak w moim przypadku), użytkownik strony simplecov na stronie github sugerował to, co zadziałało.

Dodaj to po wymagać simplecov-

module SimpleCov::Configuration 
    def clean_filters 
    @filters = [] 
    end 
end 

SimpleCov.configure do 
    clean_filters 
    load_adapter 'test_frameworks' 
end 
0

Jeśli jeden z powyższych nie działa.

sprawdzić, w test.rb:

config.eager_load = false 
0

W moim przypadku sprawa była wiosna - Musiałem stworzyć config/spring.rb z następujących czynności:

if ENV['RAILS_ENV'] == 'test' 
    require 'simplecov' 
    SimpleCov.start 
end 

udokumentowane here.

0

Używam skryptów z wiersza poleceń i znalazłem rozwiązanie było po prostu na wyjściu na końcu mojego skryptu. Doh!

Alternatywnie, dodaje się również działa

SimpleCov.at_exit do 
    SimpleCov.result.format! 
end 
Powiązane problemy