2012-01-18 5 views
8

En este momento, estoy usando un paquete para administrar mis gemas. Bundler carga diferentes gemas para diferentes entornos.¿Solo carga rasks de rastrillo en un entorno determinado?

Tengo algunas tareas de rastrillo que utilizan gems de prueba (rspec), pero estas causan problemas en entornos de producción donde no se carga esa gema.

Así que lo que me gustaría poder hacer es solo cargar la tarea de rake (y la requerida 'rspec/core/rake_task') en el entorno de prueba.

No puedo entender la mejor manera de hacerlo.

Actualmente tengo:

require "bundler" 
require 'rspec/core/rake_task' 

desc "Task for running Rspec tests" 
RSpec::Rake::SpecTask.new(:spec) 
+0

¿Esto ayuda? http://stackoverflow.com/questions/1090176/how-do-i-force-rails-env-in-a-rake-task – microspino

Respuesta

11

¿Qué tal:

require "bundler" 

unless Rails.env.production? 
    require 'rspec/core/rake_task' 

    desc "Task for running Rspec tests" 
    RSpec::Rake::SpecTask.new(:spec) 
end 
No

la solución más bonita, pero funcionará.

+1

En realidad, eso requiere que todavía cause un error, creo. Pero supongo que podría ser envuelto en el menos también. – GlyphGryph

0

Una posible solución, quizás no es ideal para todas las configuraciones, es agregar la tarea de rake a su gitignore.

Cuestiones relacionadas