Простой cov gem пропускает непроверенные файлы в Rails

С помощью simple_cov gem в приложении Rails, можем ли мы включить в отчет файлы, которые мы не тестируем?

  • Если да, то как?

  • Если нет, то эти файлы должны учитываться в процентах от покрытия, верно?

2 ответа

Решение

Попробуйте отредактировать ваш config/environments/test.rb и установите эту строку:

config.eager_load = false

в true таким образом, загружается все приложение, и simplecov читает его.

Стремитесь загрузить все приложение Rails при запуске набора тестов с покрытием кода. добавлять Rails.application.eager_load! в spec_helper.rb,

Simplecov замедляет тестирование, поэтому я использую переменную окружения оболочки, чтобы включить его. Обычно мой 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']

Начиная с версии 0.11.0 файлы, которые следует отслеживать, можно задать явным образом (Pull Request).

Для приложения Rails это будет:

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

Или простое использование:

require 'simplecov'
SimpleCov.start 'rails'

И файлы для отслеживания будут установлены по умолчанию (текущий связанный код).

Другие вопросы по тегам