2012-05-30 18 views
6

Rzeczywiście, był to problem z konfiguracją. Spec/spec_helper.rd wskazał środowisko "testowe". Zmieniłem go do „rozwoju” w celu uczynienia go odnosić do config/środowiskach/development.rbBłąd RSpec w testowaniu

poważaniem
Fred

Jestem nowy w RoR, a po RoR 3.2 Tutorial od Michael Hartl. (Rozdz. 3.2.1)

Jeśli chodzi o wykonanie pierwszego badania, RSpec zwraca sto błędów rozpoczynające się z tego (i wszyscy szukają samo mniej lub bardziej ):

/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) 

Moja baza danych DEV to PostgreSQL i wygląda na działającą poprawnie (migracje działają dobrze).

Czy ktoś może mi pomóc zrozumieć, co jest nie tak i go rozwiązać?

Dzięki.

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 

Środowisko:

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

Czy to Twoja cała baza danych.yml? Powinna istnieć sekcja do testu, masz tylko rozwój. –

Odpowiedz

10

trzeba rozwiązać ten

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

i dodać odcinek testowy jak ten

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

również pamiętać, aby utworzyć testowy db :) rspec działa w środowisku "test" więc on będzie szukał pod kluczem testowym z database.yml nie rozwoju :)

+0

Tak, rzeczywiście, masz rację. Testowanie powinno odbywać się w środowisku TEST, które wyjaśnia domyślną wartość ustawioną przez Rspec. Powyższy trik konfiguracyjny pomógł mi zrozumieć, jak działa, ale nie jest szczupły. Z drugiej strony rozwój oparty na testach jest dla rozwoju ... Zacznę dyskusję na ten temat ... – user1185081

Powiązane problemy