ruby on rails - Generando archivos de especificaciones faltantes para RSpec
ruby-on-rails specifications (4)
¿Hay algún comando disponible para generar todos los archivos de especificaciones faltantes para los modelos / controladores existentes? Tengo un proyecto que tiene varios modelos que se han generado sin archivos de especificaciones.
En rspec-rails-2, destinado a los rieles 3, todos los generadores rspec se han eliminado.
Puede resolver este problema ejecutando el generador de modelos de rieles. Puede agregar -s para omitir los archivos existentes y --migration = false para omitir la creación del archivo de migración.
Al igual que:
rails generate model example -s --migration=false
Si el número de especificaciones faltantes es bastante pequeño, simplemente podría ejecutar los rails generate
comandos para cada componente con especificaciones faltantes.
Cuando surge un conflicto, simplemente opta por no sobrescribir el archivo original. El generador ignorará los archivos existentes y generará los que faltan.
Solo puede ejecutar el generador e ignorar los modelos / migraciones / accesorios.
ruby script/generate rspec_model User --skip-migration --skip-fixture --skip
He estado pensando en escribir algo para hacer esto pero no ha habido ningún interés por parte de otros.
https://gist.github.com/omenking/7774140
require ''fileutils''
namespace :spec do
def progress name, x, y
print "/r #{name}: #{x}/#{y} %6.2f%%" % [x.to_f/y * 100]
end
def generate_files name
kind = name.to_s.singularize
collection = Dir.glob Rails.root.join(''app'',name.to_s,''**'',''*'').to_s
root = Rails.root.join(''app'',name.to_s).to_s<<''/''
ext = case name
when :controllers then ''_controller.rb''
when :models then ''.rb''
end
count = collection.count
collection.each_with_index do |i,index|
`rails g #{kind} #{$1} -s` if i =~ /#{root}(.+)#{ext}/
progress name, index, count
end
end
task generate_missing: :environment do
generate_files :controllers
generate_files :models
end
end
# if you dont want certian things generated than
# configure your generators in your application.rb eg.
#
# config.generators do |g|
# g.orm :active_record
# g.template_engine :haml
# g.stylesheets false
# g.javascripts false
# g.test_framework :rspec,
# fixture: false,
# fixture_replacement: nil
# end
#