1

我希望能够检查 RSpec 规范文件本身中代码的覆盖率。(这有点不寻常,但我怀疑文件中有一些未使用的代码)目前,如果我将 rails_helper.rb 中的 RSpec 配置从

require 'simplecov'
SimpleCov.start 'rails' do
  minimum_coverage 90 # Not the real number
  maximum_coverage_drop 5
end

require 'simplecov'
SimpleCov.start do
  minimum_coverage 90 # Not the real number
  maximum_coverage_drop 5
end

我可以看到 spec 文件夹中某些文件的覆盖率,例如 spec/factories/users.rb ,但看不到 spec 文件本身,例如 spec/controllers/users_controller_spec.rb。我怎样才能做到这一点?

4

1 回答 1

1

看来您需要构建自定义SimpleCov配置文件。但首先要确保您在文件simplecov顶部包含rails_helper.rb任何代码。如果没问题,您可以使用以下方法:

SimpleCov.start :my_profile do
  # add some rules here
end

默认情况下,仅:bundle包含(排除包含 的路径/vendor/bundle/)和:root(排除 simplecov 根目录之外的所有文件)过滤器,即您的规范文件应该被覆盖。

确保在运行覆盖率报告时没有使用spring,因为它也会把事情搞砸,spring stop在运行测试之前运行。如果您仍想使用springwith ,文档中simplecov有一节对此进行了描述。

最后,您可以使用https://github.com/danmayer/coverband找到您的死代码。我自己没有用过,但simplecov作者推荐它。

于 2015-09-24T19:33:42.920 回答