2012-01-18 9 views
8

W tej chwili używam bundler do zarządzania moimi klejnotami. Bundler ładuje różne klejnoty w różnych środowiskach.Tylko ładuj rakes'y w określonym środowisku?

Mam kilka zadań rake, które używają klejnotów testowania (rspec), ale powodują one problemy w środowiskach produkcyjnych, w których klej nie jest załadowany.

To, co chciałbym móc zrobić, to zlecić wykonanie tylko zadania prowizji (i wymaganej linii "rspec/core/rake_task") w środowisku testowym.

Nie mogę w pełni wymyślić najlepszy sposób na zrobienie tego.

Obecnie mam:

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

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

Czy to pomaga? http://stackoverflow.com/questions/1090176/how-do-i-force-rails-env-in-a-rake-task – microspino

Odpowiedz

11

Jak o:

require "bundler" 

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

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

Nie najładniejszy rozwiązanie, ale to będzie działać.

+1

Właściwie to wymagałoby, by nadal powodowało awarię. Ale przypuszczam, że można go było owinąć, chyba że dobrze. – GlyphGryph

0

Możliwe rozwiązanie, być może nie idealne dla wszystkich konfiguracji, polega na dodaniu zadania rake do twojego gitignore.

Powiązane problemy