Простой драгоценный камень cov, в котором отсутствуют непроверенные файлы в Rails
-
23-12-2019 - |
Вопрос
С помощью 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'
И файлы, которые будут отслеживаться, будут установлены по умолчанию (текущий связанный код).