2011-10-31 11 views
5

Escribí una aplicación Sinatra (sitio web) y me gustaría recopilar información de cobertura del código para el código del sitio. Soy nuevo en Ruby, pero Google me dice que rcov es una buena herramienta de cobertura de código. Desafortunadamente, toda la información que puedo encontrar en línea solo muestra cómo obtener información de cobertura de código sobre casos de prueba: deseo información de cobertura de código sobre mi sitio en sí.¿Cómo obtengo estadísticas de cobertura de código para mi aplicación Sinatra?

Los archivos de sitios particulares que quiero al perfil están en los directorios "SDK/proveedor" "SDK" y, por lo dónde iba a funcionar normalmente mi sitio con "ruby site.rb" Yo en cambio trataron los siguientes:

rcov -Isdk -Isdk/vendor site.rb 

Mostraba el texto de inicio de Sinatra, pero luego salía de inmediato en lugar de esperar solicitudes web como normalmente lo haría mi aplicación Sinatra.

¿Puede alguien decirme el truco de ejecutar mi sitio con la cobertura de código habilitada? Quiero ejecutar el sitio, presionarlo con una serie de solicitudes y luego detener el sitio; después de lo cual quiero ver las estadísticas de cobertura de código acumuladas de toda la serie de solicitudes.

Actualmente estoy usando Ruby 1.8.7.

+0

podría por favor elaborar un poco más en cuanto a lo que entiende que 'cobertura de código para una aplicación'? porque tradicionalmente significa la cobertura de casos de prueba – robustus

+0

Tengo un sitio web implementado utilizando Sinatra. Me gustaría ejercitar el sitio y medir qué parte del código del sitio se ejecuta durante ese ejercicio. No estoy usando ningún marco de prueba para automatizar el ejercicio del sitio. – Bruce

+0

Parece que esto debería ser simple, pero me falta algo de información clave. – Bruce

Respuesta

1

Quizás podría echar un vistazo a SimpleCov, que anuncia su uso simple para cualquier tipo de análisis de cobertura.

+0

Se ve bien, pero actualmente estoy usando Ruby 1.8.7, y parece que SimpleCov solo admite 1.9+. Actualizaré la descripción de mi problema anterior con esta información. – Bruce

4

SimpleCov es perfecto para esto. Si está utilizando RSpec y Bündler configuración es muy fácil

en su archivo joya

gem 'simplecov'

continuación

$ bundle install

En spec/spec_helper.rb (antes de cualquier otra cosa)

require 'simplecov' 
SimpleCov.start 

a continuación: $ rspec spec

Simplecov genera un muy buen informe de cobertura en cobertura/index.html

+0

No estoy usando rspec - como señalo en mi pregunta, quiero cobertura de código en los archivos de mi sitio, no en las pruebas. – Bruce

+0

Lo suficientemente justo. Supongo que malentendí la pregunta. ¿Estás diciendo que quieres probar qué líneas de código se están ejecutando debido a una determinada solicitud o conjunto de solicitudes? Sugeriría simplemente escribir algunas unidades o pruebas de integración. ¿Bajo qué circunstancias sería útil tener un informe de cobertura que no sea para su suite de pruebas? – jacobsimeon

+0

Eso es correcto. Estoy probando un código del lado del servidor que se ejecuta en un entorno bastante complicado, con interacciones entre el navegador, el servidor Sinatra y otros servicios web remotos.Es bastante probable que podría haber usado uno de los arneses de prueba de Ruby y haberme burlado de todos los componentes de la configuración que no se estaban probando directamente, pero soy nuevo con Ruby, así que me pareció más simple y más seguro simplemente implementar el sistema complejo y luego ejercítelo desde el navegador. Habiendo hecho eso, ahora tengo curiosidad de saber cuánto del código de Ruby que estoy probando está siendo afectado por mis pruebas. – Bruce

Cuestiones relacionadas