Simple cov gem missing untested files in Rails

前端 未结 3 813
时光说笑
时光说笑 2020-12-03 02:57

Using simple_cov gem in a Rails app, can we have the files that we are not testing included in the report?

  • If yes, how?

  • If no,

相关标签:
3条回答
  • 2020-12-03 03:09

    Eager load the whole Rails app when running tests suite with code coverage. Add Rails.application.eager_load! to spec_helper.rb.

    Simplecov slows down tests that's why I use shell environment variable to turn it on. Usually my spec_helper.rb/rails_helper.rb looks something like this:

    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']
    
    0 讨论(0)
  • 2020-12-03 03:16

    Since version 0.11.0 the files that should be tracked can be explicit set (Pull Request).

    For a Rails app that would be:

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

    Or simple use:

    require 'simplecov'
    SimpleCov.start 'rails'
    

    And the files to be tracked will be set by default (current related code).

    0 讨论(0)
  • 2020-12-03 03:24

    Try to edit your config/environments/test.rb and set this line:

    config.eager_load = false

    to true in this way the whole app is loaded and simplecov reads it.

    0 讨论(0)
提交回复
热议问题