Подтвердить что ты не робот

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

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

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

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

4b9b3361

Ответ 1

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

config.eager_load = false

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

Ответ 2

Ожидающая загрузка всего приложения 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']

Ответ 3

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

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

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

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

require 'simplecov'
SimpleCov.start 'rails'

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