2012-05-30 8 views
6

Tatsächlich war es ein Konfigurationsproblem. Die Spezifikation/spec_helper.rd zeigte auf "Testumgebung". habe ich es zu 'Entwicklung', um es zu config/Umgebungen/development.rbRSpec schlägt fehl

Mit freundlichen Grüßen
Fred

Ich bin neu in RoR und nach den RoR 3.2 Tutorial von Michael bezieht sich auf machen Hartl. (. Kap 3.2.1)

Wenn es die erste Prüfung auszuführen kommt, kehrt RSpec hundert von Fehlern mit diesem Ausgang (und alle suchen die gleichen mehr oder weniger ):

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

Meine DEV-Datenbank ist PostgreSQL und sieht gut aus (Migrationen funktionieren gut).

Kann mir jemand helfen zu verstehen, was falsch ist und es lösen?

Danke.

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 

Umwelt:

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

Ist das deine ganze database.yml? Es sollte Abschnitt für Test sein, Sie haben nur Entwicklung. –

Antwort

10

müssen Sie diese

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

beheben und Teststrecke wie diese

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

auch Test db hinzufügen erstellen erinnern :) Rspec läuft in "test" Umwelt, damit er schaue unter test key von database.yml nicht entwicklung :)

+0

Ja, tatsächlich hast du Recht. Der Test sollte in der TEST-Umgebung durchgeführt werden, was den von Rspec festgelegten Standardwert erklärt. Der Konfigurations-Trick oben half mir zu verstehen, wie es funktioniert, ist aber nicht mager. Auf der anderen Seite ist testgetriebene Entwicklung für die Entwicklung ... Ich beginne eine Diskussion darüber ... – user1185081