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

标签 ruby sinatra code-coverage rcov

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

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

rcov -Isdk -Isdk/vendor site.rb

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

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

我目前使用的是 Ruby 1.8.7。

最佳答案

SimpleCov 非常适合这个。 如果您使用的是 RSpec 和 Bundler,则设置非常简单

在你的 gem 文件中

gem 'simplecov'

然后

$ 捆绑安装

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

require 'simplecov'
SimpleCov.start

然后:$ rspec 规范

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

关于ruby - 如何获取我的 Sinatra 应用程序的代码覆盖率统计信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7957928/

相关文章:

unit-testing - 如何使用 nyc Istanbul CLI reporter 为每个文件设置阈值?

ruby - "public"、 "private"和 "protected"方法究竟做了什么?

ruby - 如何在不编译或安装的情况下将 ruby​​ 部署到服务器中?

ruby - Rack : cannot load such file 'sinatra'

ruby - 分析 Sinatra 应用程序的最佳方式是什么?

code-coverage - guard 声明后的 XCTest 覆盖率

覆盖失败时的异常Python预测试

ruby - Ruby 中的全局异常处理程序

ruby - 即使成功安装了 bundler,也无法找到 gemfile

html - 如何将选定的按钮存储在参数中?