IIC2143-2020-2 / syllabus

Syllabus de IIC2143 Ingeniería de Software 2020-2
35 stars 10 forks source link

SimpleCov omite controladores sin tests #239

Closed benjavicente closed 4 years ago

benjavicente commented 4 years ago

Holá! Me di cuenta que SimpleCov está omitiendo un controlador llamado carreterequests_controller.rb. Esto hace que no se tome correctamente la cobertura de nuestra aplicación. Tengo la configuración que se mostró en la ayudantía más un formateador de JSON de los resultados:

# spec/spec_helper.rb
require 'simplecov'
require 'simplecov-json'

SimpleCov.formatters = SimpleCov::Formatter::MultiFormatter.new([
  SimpleCov::Formatter::HTMLFormatter,
  SimpleCov::Formatter::JSONFormatter
])

SimpleCov.start do
  add_filter '/config/'
  add_filter '/spec/'
  add_filter '/test/'
  add_filter '/vendor/'

  add_group 'Controllers', 'app/controllers'
  add_group 'Models', 'app/models'
  add_group 'Helpers', 'app/helpers'
end

# This outputs the report to your public folder
# You will want to add this to .gitignore
SimpleCov.coverage_dir 'public/coverage'

Cobertura generada

covertura

Archivos de controladores

app/
├── controllers
│  1├── application_controller.rb
│  *├── carreterequests_controller.rb
│  3├── carretes_controller.rb
│  4├── comentarios_controller.rb
│  5├── communes_controller.rb
│  6├── services_controller.rb
│  7├── services_requests_controller.rb
│   ├── users
│   │   ├── confirmations_controller.rb
│   │   ├── omniauth_callbacks_controller.rb
│   │   ├── passwords_controller.rb
│   │   ├── registrations_controller.rb
│   │   ├── sessions_controller.rb
│   │   └── unlocks_controller.rb
│  8├── users_controller.rb
│  9└── welcome_controller.rb

¿Que puede ser lo que esté fallando o faltando? gracias de antemano

daleal commented 4 years ago

Hola! Cual es el nombre de la clase del controlador? Dado el nombre del archivo, debería ser CarreterequestsController. Me imagino que es CarreteRequestsController (que tiene más sentido para nosotros pero no para Rails). Para arreglar eso, debes cambiar el nombre del archivo del controlador a carrete_requests_controller.rb

benjavicente commented 4 years ago

El nombre del controlador es CarreterequestsController, probe cambiandole el nombre tanto a la clase como al archivo (solo del controlador) y no se añadío 🤔

daleal commented 4 years ago

Extraño 🤔 puedes mandarme el contenido de tu controlador?

benjavicente commented 4 years ago

Me acabo de dar cuenta de que solo se añaden a la cobertura si tienen tests 😅, ya que al añadir uno aparece en el reporte. Aunque es muy raro eso, porque podría tener fácilmente 100% de cobertura si hago solo tests a todo un controlador.

edit: conté mal los controladores, de hecho, son 2 creados por nosotros que no tienen tests (comentarios_controller también), por eso tenemos tan alto la cobertura xd

daleal commented 4 years ago

😲 que extraño 🤔 bueno, al menos el misterio fue resuelto jajajajajajaajaja