Ruby on rails 使用simplecov的Rails应用程序代码覆盖率高,测试次数少

Ruby on rails 使用simplecov的Rails应用程序代码覆盖率高,测试次数少,ruby-on-rails,ruby-on-rails-4,cucumber,code-coverage,simplecov,Ruby On Rails,Ruby On Rails 4,Cucumber,Code Coverage,Simplecov,我们开始使用simplecov gem来计算RubyonRails应用程序的代码覆盖率 SimpleCov.start 'rails' 虽然我们只开发了几个使用Cucumber的测试用例,但simplecov提供的测试率高达40% 如何使这个比率更准确?测量的覆盖率数字可能是准确的。Ruby模块、类和方法定义都是代码,所以在simplecov运行时仅加载模块和类就占了代码的很大一部分。一个Cumber场景可能会引用您的许多类,因此会产生这种效果。在rake任务和其他地方对代码的引用也会增加这种

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

SimpleCov.start 'rails'
虽然我们只开发了几个使用Cucumber的测试用例,但simplecov提供的测试率高达40%


如何使这个比率更准确?

测量的覆盖率数字可能是准确的。Ruby模块、类和方法定义都是代码,所以在simplecov运行时仅加载模块和类就占了代码的很大一部分。一个Cumber场景可能会引用您的许多类,因此会产生这种效果。在rake任务和其他地方对代码的引用也会增加这种“背景”覆盖率。通过查看覆盖率报告并观察
class
module
def
行被覆盖,而定义的主体未被覆盖,您可以看到这种情况的真实程度

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


事实上,你甚至可能想要。(simplecov不会为从未加载的文件插入仪器。)这将真正为您提供准确的测量。在我最近的项目中,我不得不停止这样做,因为它以一种我已经忘记的方式干扰了工作服,但这对你来说可能不是问题。

我认为这不是回答这个问题的正确地方。请查看所涵盖的内容,看看是否有问题。如果有错误,请转到simplecov()并提交问题。