Ответ 1
Попробуйте отредактировать config/environments/test.rb
и установите эту строку:
config.eager_load = false
до true
таким образом загружается все приложение, а simplecov читает его.
Используя simple_cov
gem в приложении Rails, можем ли мы иметь файлы, которые мы не тестируем, включены в отчет?
Если да, то как?
Если нет, то эти файлы должны рассчитывать на процент покрытия, верно?
Попробуйте отредактировать 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, файлы, которые должны отслеживаться, могут быть явно заданы (Запрос на извлечение).
Для приложения Rails это будет:
require 'simplecov'
SimpleCov.start do
track_files '{app,lib}/**/*.rb'
end
Или простое использование:
require 'simplecov'
SimpleCov.start 'rails'
И файлы для отслеживания будут установлены по умолчанию (текущий связанный код).