如何获取Sinatra应用程序的代码覆盖率统计信息?

时间:2011-10-31 18:22:08

标签: ruby sinatra code-coverage rcov

我已经编写了一个Sinatra应用程序(网站),我想收集该网站代码的代码覆盖率信息。我是Ruby的新手,但Google告诉我rcov是一个很好的代码覆盖工具。不幸的是,我在网上找到的所有信息都只显示了如何获取有关测试用例的代码覆盖率信息 - 我想要有关我网站本身的代码覆盖率信息。

我想要分析的特定站点文件位于“sdk”和“sdk / vendor”目录中,因此我通常使用“ruby site.rb”运行我的站点,而是尝试以下操作:

rcov -Isdk -Isdk/vendor site.rb

它显示了Sinatra启动文本,但随后立即退出而不是像我的Sinatra应用程序那样等待Web请求。

有人可以告诉我在启用代码覆盖率的情况下运行我的网站的诀窍吗?我想运行该网站,用一系列请求点击它,然后停止该网站;之后我想查看整个系列请求中累积的代码覆盖率统计数据。

我目前正在使用Ruby 1.8.7。

2 个答案:

答案 0 :(得分:4)

SimpleCov非常适合这种情况。 如果您正在使用RSpec和Bundler设置非常简单

宝石文件中的

gem 'simplecov'

然后

$ bundle install

在spec / spec_helper.rb中(在其他任何事情之前)

require 'simplecov'
SimpleCov.start

然后:$ rspec spec

Simplecov在coverage / index.html

生成一个非常好的覆盖率报告

答案 1 :(得分:1)

也许你可以看一下SimpleCov,它宣传其用于任何类型的覆盖分析的简单用法。