6

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

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

rcov -Isdk -Isdk/vendor site.rb

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

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

我目前正在使用 Ruby 1.8.7。

4

2 回答 2

4

SimpleCov 非常适合这一点。如果您使用 RSpec 和 Bundler 设置非常简单

在你的 gem 文件中

gem 'simplecov'

然后

$ bundle install

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

require 'simplecov'
SimpleCov.start

然后:$ rspec spec

Simplecov 在coverage/index.html 生成一个非常好的覆盖率报告

于 2011-11-01T21:51:23.127 回答
1

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

于 2011-10-31T18:38:58.250 回答