32

在 Rails 应用程序中使用simple_covgem,我们可以将我们未测试的文件包含在报告中吗?

  • 如果是,如何?

  • 如果不是,该文件应该计入覆盖率,对吗?

4

3 回答 3

53

尝试编辑您的config/environments/test.rb并设置此行:

config.eager_load = false

true这种方式加载整个应用程序,simplecov 读取它。

于 2014-03-26T09:36:31.980 回答
16

在运行具有代码覆盖率的测试套件时,渴望加载整个 Rails 应用程序。添加Rails.application.eager_load!spec_helper.rb.

Simplecov 会减慢测试速度,这就是我使用 shell 环境变量打开它的原因。通常我的spec_helper.rb/rails_helper.rb看起来像这样:

if ENV['COVERAGE']
  require 'simplecov'
  # some SimpleCov setup, e.g. formatters
  SimpleCov.start 'rails'
end

ENV['RAILS_ENV'] ||= 'test'
require 'spec_helper'
require File.expand_path('../../config/environment', __FILE__)
require 'rspec/rails'

Rails.application.eager_load! if ENV['COVERAGE']
于 2015-07-31T10:01:08.960 回答
2

从 0.11.0 版本开始,可以显式设置应跟踪的文件(Pull Request)。

对于 Rails 应用程序,它将是:

require 'simplecov'
SimpleCov.start do
  track_files '{app,lib}/**/*.rb'
end

或者简单的使用:

require 'simplecov'
SimpleCov.start 'rails'

并且会默认设置要跟踪的文件(当前相关代码)。

于 2019-09-19T14:25:59.307 回答