ruby-on-rails - 使用 simplecov 对 Rails 应用进行少量测试,代码覆盖率高

标签 ruby-on-rails ruby-on-rails-4 cucumber code-coverage simplecov

我们开始使用 simplecov gem 来计算 Ruby on Rails 应用程序的代码覆盖率。

SimpleCov.start 'rails'

虽然我们只使用 Cucumber 开发了几个测试用例,但 simplecov 提供的成功率高达 40%。

如何让这个费率更加准确?

最佳答案

测量的覆盖率数字可能是准确的。 Ruby 模块、类和方法定义都是代码,因此仅在 simplecov 运行时加载模块和类就涵盖了相当大比例的代码。单个 Cucumber 场景可能会引用您的许多类,因此会导致这种效果。在 rake 任务和其他地方引用您的代码也会增加这种“背景”覆盖范围。您可以通过查看覆盖率报告并观察 classmodule 以及 def 行被覆盖而了解这种情况的真实程度。定义的主体不是。

不要反抗;就用它吧。不要尝试在代码加载后运行 simplecov,因为 simplecov 仍然会在代码覆盖率图的分母中包含模块、类和方法定义,这会更烦人。

事实上,您甚至可能想要eager load all of your code so that simplecov shows you the lack of coverage in files that your tests wouldn't cause to be loaded otherwise 。 (simplecov 不会检测从未加载的文件。)这将真正为您提供准确的测量。我不得不在最近的项目中停止这样做,因为它以一种我已经忘记的方式干扰工作服,但这对你来说可能不是问题。

关于ruby-on-rails - 使用 simplecov 对 Rails 应用进行少量测试,代码覆盖率高,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37138656/

相关文章:

javascript - 在rails4中调用js内部的配置变量

ruby-on-rails-4 - 不 protected 重定向没有被 only_path 治愈

使用 Aruba 进行 Ruby gem CLI 测试

junit - 出现错误 "cucumber.runtime.CucumberException: Couldn' t 加载插件类 : com. cucumber.listener.ExtentCucumberFormatter。”

postgresql - 无法访问记录 ID 字段

ruby-on-rails - rails/ruby,将多个 block 作为参数传递

ruby-on-rails - Factory_girl 如何使用为 child 声明的特征创建 HABTM 关联?

ruby-on-rails - rails to_xml/to_json 选项

java - cucumber .runtime.CucumberException : Couldn't load plugin class: json-pretty with Cucumber Selenium and Java

ruby-on-rails - Redis、Mongoid、Rails - 在 View 中使用 redis 属性