2010-12-02 7 views
11

He actualizado mis gemas. He creado una aplicación de muestra rieles y tienen el siguiente en mi Gemfile:Intentando usar rspec, pero obteniendo un error que rspec-core 2.2.1 ha sido activado, pero mi Gemfile requiere rspec-core 2.1.0

source 'http://rubygems.org' 

gem 'rails', '3.0.3' 
gem 'sqlite3-ruby', :require => 'sqlite3' 

group :development do 
    gem 'rspec-rails' 
end 

group :test do 
    gem 'rspec' 
    gem 'webrat', '0.7.1' 
end 

Sin embargo, cuando corro 'spec rspec /', me sale el siguiente mensaje:

/home/jeff/.rvm/gems/ruby-1.9.2-p0/gems/bundler-1.0.7/lib/bundler/runtime.rb:27:in `block in setup': 
You have already activated rspec-core 2.2.1, but your Gemfile requires rspec-core 2.1.0. 
Consider using bundle exec. (Gem::LoadError) 

Respuesta

9

trate de usar bundle update rspec y bundle update rspec-rails. su archivo Gemfile.lock, ubicado en el directorio raíz, probablemente esté especificando un número de versión para cada gema.

0

rieles Noob aquí ... Estoy siguiendo brillante tutorial de Michael Hartl ... atrapado en layouts

intentado cambiar rspec & webrat versiones como se menciona en this post about rspec/webrat errors en vano.

Para rspec v2.1.0 obtengo el mismo error que @ user338413.

rspec -v devuelve la máquina 2.2.1


dev con Ubuntu 10.04

resuelto .... trabaja con rspec 2.2.0 + 0.7.1 webrat, aunque todavía me gustaría a saber por qué

2

Tengo el mismo problema en este momento. para solucionarlo tratar de:

sudo gem uninstall rspec-core -v 2.2.1 
bundle update rspec-core 

Es posible que tenga que hacer para que otras gemas dependientes (como rspec, rspec-carriles, etc). Utilice el comando para ver los candidatos:

gem list rspec 
+0

Esto lo arregló. El problema para mí fue que había instalado rspec dos veces como gemas locales, una vez sin especificar un número de versión y una con la especificación de un número de versión. Rspec instalado con un número de versión inferior al que se instaló sin un número de versión, e intentaba cargar la gema rspec-support con un número de versión superior al requerido. TL; DR: eliminar las gemas duplicadas: ejecuta la lista de gemas rspec para ver cuáles son duplicados y luego elimina estas versiones. – Tebbers

7

Una combinación de las soluciones de Sam Ritchie y Alexey me ayudó aquí. Al final tuve que:

bundle update rspec 
bundle update rspec-rails 
sudo gem uninstall rspec-mocks 
sudo gem uninstall rspec-expectations 
sudo gem uninstall rspec-core 

(indicaciones para las versiones Si se introducen ninguno)

Como dice Alexey, utilizar esto para ver qué versiones son demasiado altos:

gem list rspec 

(Would votar por ti Alexey, pero al parecer no tengo suficiente de una "reputación" en la pila.)

0

Esto se resuelve fácilmente:

bundle exec rspec 

forzará a bundler a usar la versión de gema que necesita para su proyecto, ignorando las configuraciones de todo el sistema.

0

cambie el número de versión de 2.1.0 a 2.2.1 en Gemfile.lock

Cuestiones relacionadas