我们开始使用 simplecov gem 来计算 Ruby on Rails 应用程序的代码覆盖率。
SimpleCov.start 'rails'
虽然我们只使用 Cucumber 开发了几个测试用例,但 simplecov 提供的比率高达 40%。
如何使这个比率更准确?
我们开始使用 simplecov gem 来计算 Ruby on Rails 应用程序的代码覆盖率。
SimpleCov.start 'rails'
虽然我们只使用 Cucumber 开发了几个测试用例,但 simplecov 提供的比率高达 40%。
如何使这个比率更准确?
测得的覆盖率数字可能是准确的。Ruby 模块、类和方法定义是代码,因此仅在 simplecov 运行时加载模块和类就涵盖了相当大比例的代码。单个 Cucumber 场景可能会引用您的许多类,因此会导致这种效果。在 rake 任务和其他地方对您的代码的引用也会增加这种“背景”覆盖率。通过查看覆盖率报告并观察class
和module
和def
行被覆盖而定义的主体没有被覆盖,您可以看到这在多大程度上是正确的。
不要与之抗争;只需使用它。不要尝试在代码加载后运行 simplecov,因为 simplecov 仍然会在代码覆盖率数字的分母中包含模块、类和方法定义,这会更烦人。
事实上,您甚至可能希望预先加载您的所有代码,以便 simplecov 向您显示您的测试不会导致加载的文件中缺乏覆盖。(simplecov 不会检测从未加载的文件。)这将真正为您提供准确的测量结果。在我最近的项目中,我不得不停止这样做,因为它以一种我已经忘记的方式干扰了工作服,但这对你来说可能不是问题。