Простой 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'
И файлы для отслеживания будут установлены по умолчанию (текущий связанный код).