2011-10-31 9 views
5

Ho scritto un'app Sinatra (sito web) e vorrei raccogliere informazioni sulla copertura del codice per il codice del sito. Sono nuovo di Ruby, ma Google mi dice che rcov è un buon strumento di copertura del codice. Sfortunatamente, tutte le informazioni che posso trovare online mostrano solo come ottenere informazioni sulla copertura del codice sui casi di test - Voglio informazioni sulla copertura del codice sul mio sito stesso.Come ottengo le statistiche di copertura del codice per la mia app Sinatra?

Le particolari file del sito che voglio al profilo sono nel "SDK" e "directory sdk/vendor", in modo da dove io normalmente correre il mio sito con "ruby site.rb" Io invece provato la seguente:

rcov -Isdk -Isdk/vendor site.rb 

Ha mostrato il testo di avvio di Sinatra, ma poi è uscito immediatamente invece di attendere le richieste web come normalmente farebbe la mia app di Sinatra.

Qualcuno può dirmi il trucco di eseguire il mio sito con la copertura del codice abilitata? Voglio eseguire il sito, colpirlo con una serie di richieste e quindi interrompere il sito; dopo di che voglio guardare le statistiche di copertura del codice accumulate da tutta la serie di richieste.

Attualmente sto usando Ruby 1.8.7.

+0

, la prego di elaborare un po 'di più su ciò che si capisce di essere 'codecoverage per un app'? perché tradizionalmente significa copertura dei casi di test – robustus

+0

Ho un sito web implementato usando Sinatra. Mi piacerebbe esercitare il sito e misurare la quantità di codice del sito che viene eseguito durante l'esercizio. Non sto usando alcun framework di test per automatizzare l'esercizio del sito. – Bruce

+0

Sembra che questo dovrebbe essere semplice, ma mi mancano alcune informazioni chiave. – Bruce

risposta

1

Forse potresti dare un'occhiata a SimpleCov, che pubblicizza il suo semplice utilizzo per qualsiasi tipo di analisi di copertura.

+0

Sembra bello, ma attualmente sto usando Ruby 1.8.7, e sembra che SimpleCov supporti solo 1.9+. Aggiornerò la mia descrizione del problema sopra con queste informazioni. – Bruce

4

SimpleCov è perfetto per questo. Se stai usando RSpec e Bundler L'installazione è super facile

nel file gemma

gem 'simplecov'

poi

$ bundle install

In spec/spec_helper.rb (prima di tutto)

require 'simplecov' 
SimpleCov.start 

poi: $ rspec spec

Simplecov genera davvero un bel rapporto di copertura a copertura/index.html

+0

Non sto usando rspec - come sottolineo nella mia domanda, voglio la copertura del codice sui miei file del sito, non sui test. – Bruce

+0

Abbastanza giusto. Credo di aver frainteso la domanda. Stai dicendo che vuoi testare quali linee di codice sono state eseguite a fronte di una certa richiesta o di una serie di richieste? Suggerirei semplicemente di scrivere alcuni test di unità o di integrazione. In quali circostanze sarebbe utile avere un rapporto di copertura diverso da quello per la tua suite di test? – jacobsimeon

+0

Questo è corretto. Sto testando un codice lato server che gira in un ambiente abbastanza complicato, con interazioni tra il browser, il server Sinatra e altri servizi web remoti.È probabile che avrei potuto utilizzare uno dei cablaggi di test Ruby e aver deriso tutti i bit della configurazione non direttamente testati, ma sono nuovo di Ruby quindi ho trovato più semplice e più sicuro implementare semplicemente il sistema complesso e quindi esercitarlo dal browser. Fatto questo, ora sono curioso di sapere quanto il codice Ruby che sto testando venga effettivamente colpito dai miei test. – Bruce

Problemi correlati