Gemme cov simple manquant de fichiers non testés dans Rails
-
23-12-2019 - |
Question
En utilisant simple_cov
gem dans une application Rails, pouvons-nous inclure les fichiers que nous ne testons pas dans le rapport ?
Si oui, comment ?
Si non, ces fichiers devraient compter dans le pourcentage de couverture, n'est-ce pas ?
La solution
Essayez de modifier votre config/environments/test.rb
et définissez cette ligne :
config.eager_load = false
à true
de cette façon, toute l'application est chargée et simplecov la lit.
Autres conseils
Chargez avec impatience l'intégralité de l'application Rails lors de l'exécution d'une suite de tests avec couverture de code.Ajouter Rails.application.eager_load!
à spec_helper.rb
.
Simplecov ralentit les tests, c'est pourquoi j'utilise la variable d'environnement shell pour l'activer.Habituellement mon spec_helper.rb
/rails_helper.rb
ça ressemble à ça :
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']
Depuis la version 0.11.0 Les fichiers qui doivent être suivis peuvent être définis explicites ( Demande de traction ).
pour une application rails qui serait:
require 'simplecov'
SimpleCov.start do
track_files '{app,lib}/**/*.rb'
end
require 'simplecov'
SimpleCov.start 'rails'
Et les fichiers à suivre seront définis par défaut ( Code associé actuel ).