2012-05-30 20 views
6

De hecho, era un problema de configuración. El entorno spec/spec_helper.rd apuntaba a 'prueba'. lo cambié a 'desarrollo' con el fin de hacer que se refiere a config/ambientes/development.rbRSpec no prueba

Saludos
Fred

Soy nuevo en RoR, y siguiendo el tutorial RoR 3.2 de Michael Hartl. (. Cap 3.2.1)

Cuando se trata de ejecutar la primera prueba, RSpec devuelve un centenar de de errores que empiezan con éste (y todos buscando lo mismo más o menos ):

/home/fred/.rvm/gems/[email protected]/gems/activerecord-3.2.1/lib/active_record/connection_adapters/abstract/connection_specification.rb:45:in 
`resolve_hash_connection': database configuration does not specify 
adapter (ActiveRecord::AdapterNotSpecified) 

Mi base de datos DEV es PostgreSQL y parece funcionar bien (las migraciones funcionan bien).

¿Alguien me puede ayudar a entender qué pasa y solucionarlo?

Gracias.

Gemfile:

source 'https://rubygems.org' 

gem 'rails', '3.2.1' 

# Bundle edge Rails instead: 
# gem 'rails', :git => 'git://github.com/rails/rails.git' 

gem 'postgres-pr' 
gem 'pg' 

# gem for test scripts 
group :development, :test do 
gem 'rspec-rails' 
end 

group :test do 
    gem 'capybara', '1.1.2' 
end 

# Gems used only for assets and not required 
# in production environments by default. 
group :assets do 
    gem 'sass-rails', '~> 3.2.3' 
    gem 'coffee-rails', '~> 3.2.1' 
    gem 'uglifier', '>= 1.0.3' 
end 

gem 'jquery-rails' 

database.yml:

# PostgreSQL 8.4 
development: 
    adapter: postgresql 
    encoding: unicode 
    database: ODQ_APP 
    pool: 5 

Medio Ambiente:

Ruby version 1.9.3 (i686-linux) 
RubyGems version 1.8.15 
Rack version 1.4 
Rails version 3.2.1 
JavaScript Runtime Node.js (V8) 
Active Record version 3.2.1 
Action Pack version 3.2.1 
Active Resource version 3.2.1 
Action Mailer version 3.2.1 
Active Support version 3.2.1 
Middleware 

ActionDispatch::Static 
Rack::Lock 
#<ActiveSupport::Cache::Strategy::LocalCache::Middleware:0xa848460> 
Rack::Runtime 
Rack::MethodOverride 
ActionDispatch::RequestId 
Rails::Rack::Logger 
ActionDispatch::ShowExceptions 
ActionDispatch::DebugExceptions 
ActionDispatch::RemoteIp 
ActionDispatch::Reloader 
ActionDispatch::Callbacks 
ActiveRecord::ConnectionAdapters::ConnectionManagement 
ActiveRecord::QueryCache 
ActionDispatch::Cookies 
ActionDispatch::Session::CookieStore 
ActionDispatch::Flash 
ActionDispatch::ParamsParser 
ActionDispatch::Head 
Rack::ConditionalGet 
Rack::ETag 
ActionDispatch::BestStandardsSupport 

Application root /home/fred/rails_projects/ODQ 
Environment development 
Database adapter postgresql 
Database schema version 20120503135705 

Fred

+1

¿Es esa tu base de datos completa.yml? Debe haber una sección para la prueba, solo tienes desarrollo. –

Respuesta

10

que debe arreglar este

# PostgreSQL 8.4 
development: 
    adapter: postgresql 
    encoding: unicode 
    database: ODQ_APP 
    pool: 5 

y añadir la sección de prueba como esta

# PostgreSQL 8.4 
test: 
    adapter: postgresql 
    encoding: unicode 
    database: ODQ_APP_test 
    pool: 5 

también recordar para crear db prueba :) Rspec se ejecuta en el entorno de "prueba" para que él estará buscando bajo clave de prueba desde database.yml not development :)

+0

Sí, de hecho, tienes razón. Las pruebas deben realizarse en el entorno TEST, lo que explica el valor predeterminado establecido por Rspec. El truco de configuración anterior me ayudó a entender cómo funciona, pero no es delgado. Por otro lado, el desarrollo basado en pruebas es para el desarrollo ... Comenzaré una discusión sobre esto ... – user1185081

Cuestiones relacionadas