2012-10-02 10 views
7

Sto lavorando su un piccolo gioiello e incluso simplecov a spec_helper.rb due linee:SimpleCov 0% di copertura

require 'simplecov' 
SimpleCov.start 

Quando eseguo il test RSpec, il simplecov sembra avviato correttamente, ma il rapporto non è:

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. 

quello che potrebbe essere un problema e come risolverlo? Grazie

risposta

19

Assicurati inoltre di abilitare simplecov (ad esempio SimpleCov.start) al molto all'inizio del file; soprattutto prima di richiedere il codice.

+2

Questo è stato il mio problema; grazie. Qualcun altro ha indicato un modo utile per diagnosticare: aggiungi un messaggio di debug 'puts' all'inizio di un file app/modello, e un altro in' spec_helper.rb' proprio accanto al tuo 'SimpleCov.start' - se vedi l'output di debug del modello prima dell'output di debug di SimpleCov, sai che il tuo modello viene caricato prima di SimpleCov. – bjnord

+0

risolto per me, grazie! – lfender6445

+0

Questo l'ha risolto, grazie mille! –

2

Ho avuto gli stessi sintomi. Il mio problema era che nel mio file di test:

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

...Rest of the test file 

e avevo bisogno di cambiare l'ordine dei require s per:

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

...Rest of the test file 

Spero che questo aiuti qualcuno, stavo impazzendo ...

0

Nel caso in cui le due risposte precedenti non funzionassero (come nel mio caso) un utente sulla pagina dei problemi di github di simplecov ha suggerito questo, che ha funzionato per me.

Aggiungi questo dopo si richiede simplecov-

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

SimpleCov.configure do 
    clean_filters 
    load_adapter 'test_frameworks' 
end 
0

Se uno di cui sopra non ha funzionato.

verificare che in test.rb:

config.eager_load = false 
0

Nel mio caso il problema era primavera - ho dovuto creare un config/spring.rb con il seguente:

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

come documentato here.

0

Sono in esecuzione script dalla riga di comando e ho trovato la soluzione era semplicemente per mettere un uscita alla fine del mio script. Doh!

In alternativa, le seguenti opere anche

SimpleCov.at_exit do 
    SimpleCov.result.format! 
end 
Problemi correlati