He heredado una antigua aplicación Rails2.3. Es muy complejo y tiene (shock, horror) sin pruebas de ningún tipo. Estoy acostumbrado a rspec y pepino, así que pensé que comenzaría a trabajar para obtener las especificaciones y características definidas para la eventual (larga distancia) actualización a Rails 3. Es más fácil actualizar si sé exactamente lo que fallará.no se ha descargado ese archivo - rspec/matchers - rspec-rails, shoulda, pepino, factory girl, Rails2.3.10
De todos modos, me resultó muy difícil encontrar recursos en Internet que mostraran cómo configurar rspec, pepino, fábrica y debería en un entorno de rieles 2.3. Mi paquete es el siguiente:
source "http://rubygems.org"
# Production gems
gem "rails", "2.3.10"
gem "nokogiri", "1.4.4"
gem "mysql", "~> 2.8.1"
group :development do
# bundler requires these gems in development
gem 'rspec', '1.3.2'
gem 'rspec-core', '2.5.2'
gem 'rspec-rails', '1.3.4'
end
group :test do
# bundler requires these gems while running tests
gem 'cucumber-rails', '0.4.1'
gem 'factory_girl'
gem 'shoulda', '2.11.3'
gem 'shoulda-matchers'
end
Cuando voy a correr
bundle exec rspec spec,
me sale el siguiente StackTrace de la debería:
/Users/sys/src/proj/rails/ruby/1.8/gems/shoulda-2.11.3/lib/shoulda/integrations/rspec2.rb:8: no such file to load -- rspec/matchers (MissingSourceFile)
from /Users/sys/src/proj/vendor/rails/activesupport/lib/active_support/dependencies.rb:184:in `require'
from /Users/sys/src/proj/vendor/rails/activesupport/lib/active_support/dependencies.rb:184:in `require'
from /Users/sys/src/proj/rails/ruby/1.8/gems/shoulda-2.11.3/lib/shoulda.rb:4
from /Library/Ruby/Gems/1.8/gems/bundler-1.0.14/lib/bundler/runtime.rb:68:in `require'
from /Library/Ruby/Gems/1.8/gems/bundler-1.0.14/lib/bundler/runtime.rb:68:in `require'
from /Library/Ruby/Gems/1.8/gems/bundler-1.0.14/lib/bundler/runtime.rb:66:in `each'
from /Library/Ruby/Gems/1.8/gems/bundler-1.0.14/lib/bundler/runtime.rb:66:in `require'
from /Library/Ruby/Gems/1.8/gems/bundler-1.0.14/lib/bundler/runtime.rb:55:in `each'
from /Library/Ruby/Gems/1.8/gems/bundler-1.0.14/lib/bundler/runtime.rb:55:in `require'
from /Library/Ruby/Gems/1.8/gems/bundler-1.0.14/lib/bundler.rb:120:in `require'
from /Users/sys/src/proj/config/boot.rb:119:in `load_gems'
from /Users/sys/src/proj/config/../vendor/rails/railties/lib/initializer.rb:164:in `process'
from /Users/sys/src/proj/config/../vendor/rails/railties/lib/initializer.rb:113:in `send'
from /Users/sys/src/proj/config/../vendor/rails/railties/lib/initializer.rb:113:in `run'
from /Users/sys/src/proj/config/environment.rb:12
from /Users/sys/src/proj/spec/spec_helper.rb:4:in `require'
from /Users/sys/src/proj/spec/spec_helper.rb:4
from /Users/sys/src/proj/spec/models/announcement_spec.rb:1:in `require'
from /Users/sys/src/proj/spec/models/announcement_spec.rb:1
from /Users/sys/src/proj/rails/ruby/1.8/gems/rspec-core-2.5.2/lib/rspec/core/configuration.rb:386:in `load'
from /Users/sys/src/proj/rails/ruby/1.8/gems/rspec-core-2.5.2/lib/rspec/core/configuration.rb:386:in `load_spec_files'
from /Users/sys/src/proj/rails/ruby/1.8/gems/rspec-core-2.5.2/lib/rspec/core/configuration.rb:386:in `map'
from /Users/sys/src/proj/rails/ruby/1.8/gems/rspec-core-2.5.2/lib/rspec/core/configuration.rb:386:in `load_spec_files'
from /Users/sys/src/proj/rails/ruby/1.8/gems/rspec-core-2.5.2/lib/rspec/core/command_line.rb:18:in `run'
from /Users/sys/src/proj/rails/ruby/1.8/gems/rspec-core-2.5.2/lib/rspec/core/runner.rb:55:in `run_in_process'
from /Users/sys/src/proj/rails/ruby/1.8/gems/rspec-core-2.5.2/lib/rspec/core/runner.rb:46:in `run'
from /Users/sys/src/proj/rails/ruby/1.8/gems/rspec-core-2.5.2/lib/rspec/core/runner.rb:10:in `autorun'
from /Users/sys/src/proj/rails/ruby/1.8/bin/rspec:19
Google para que el error proporciona alarmantemente algunos golpes .. . No estoy seguro de lo que he hecho mal?
Extracción rspec-core da: spec exec rspec
haz/modelos/announcement_spec.rb /Users/sys/.rvm/gems/[email protected]/gems/bundler-1.0 .14 / lib/bundler/rubygems_integration.rb: 143: en `gema ': rspec-core no es parte del paquete. Agrégalo a Gemfile. (Gem :: LoadError)
contenido del opt/local/bin/rspec
cat /opt/local/bin/rspec
#!/usr/bin/env ruby
#
# This file was generated by RubyGems.
#
# The application 'rspec-core' is installed as part of a gem, and
# this file is here to facilitate running it.
#
require 'rubygems'
version = ">= 0"
if ARGV.first =~ /^_(.*)_$/ and Gem::Version.correct? $1 then
version = $1
ARGV.shift
end
gem 'rspec-core', version
load Gem.bin_path('rspec-core', 'rspec', version)
Me pregunto si esto está en conflicto con otros de rspec he instalado (He instalado una aplicación Rails3, también con bundler/rvm) ... No estoy seguro de por qué rspec se está ejecutando fuera de opt/local/bin y no del paquete, aunque ...
Si elimino rspec-core, obtengo: /Library/Ruby/Gems/1.8/gems/bundler-1.0.14/lib/bundler/rubygems_integration.rb: 143: en 'gema ': rspec-core no es parte del paquete. Agrégalo a Gemfile. (Gem :: LoadError) \t desde /Users/sys/src/proj/rails/ruby/1.8/bin/rspec:18 –
Intenté desinstalar todas las gemas rspec, poniendo solo las 2 gemas anteriores en tu Gemfile, y ejecutando la instalación del paquete. – Mori
Todavía causa problemas. Sin embargo, ahora se está quejando de que el archivo está en \t desde/opt/local/bin/rspec: 18 ... ¿cuál es el contenido del archivo de esa secuencia de comandos? –