【问题标题】:High code coverage rate with few tests for a Rails app using simplecov使用 simplecov 对 Rails 应用程序进行少量测试的高代码覆盖率
【发布时间】:2016-05-10 12:31:20
【问题描述】:

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

SimpleCov.start 'rails'

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

如何让这个比率更准确?

【问题讨论】:

  • 我认为这里不适合回答这个问题。
  • 查看所涵盖的内容,看看是否有问题。如果有错误,请转到 simplecov (github.com/colszowka/simplecov/issues) 并提交问题。

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


【解决方案1】:

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

不要与之抗争;只需使用它。代码加载后不要尝试运行 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 不会检测从未加载过的文件。)这将真正为您提供准确的测量结果。在我最近的项目中,我不得不停止这样做,因为它以一种我已经忘记的方式干扰了工作服,但这对你来说可能不是问题。

【讨论】:

    猜你喜欢
    • 2019-01-19
    • 1970-01-01
    • 2013-02-19
    • 1970-01-01
    • 1970-01-01
    • 2020-08-12
    • 1970-01-01
    • 2018-10-25
    • 1970-01-01
    相关资源
    最近更新 更多