2012-05-30 13 views
6

परीक्षण में विफल रहता है वास्तव में, यह एक कॉन्फ़िगरेशन समस्या थी। spec/spec_helper.rd ने 'परीक्षण' वातावरण की ओर इशारा किया। मैं 'विकास' के लिए इसे बदल क्रम में यह config/वातावरण/development.rb का उल्लेखआरएसपीसी

सादर
फ्रेड

मैं आतंक विरोधी के लिए नया हूँ, और माइकल से आतंक विरोधी 3.2 ट्यूटोरियल निम्नलिखित बनाने के लिए हार्टल। (। अध्याय 3.2.1)

यह पहली बार परीक्षण निष्पादित करने के लिए आता है, RSpec रिटर्न एक सौ इस एक के साथ शुरू त्रुटियों की (और सभी एक ही और अधिक या कम देख):

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

मेरा DEV डेटाबेस PostgreSQL है और ठीक काम करने लगता है (माइग्रेशन अच्छी तरह से काम करते हैं)।

क्या कोई मुझे यह समझने में मदद कर सकता है कि क्या गलत है और इसे हल करें?

धन्यवाद।

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 

पर्यावरण:

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 

फ्रेड

+1

क्या यह आपका पूरा डेटाबेस.आईएमएल है? परीक्षण के लिए अनुभाग होना चाहिए, आपके पास केवल विकास है। –

उत्तर

10

आप भी परीक्षण डाटाबेस बनाने के लिए याद इस

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

को ठीक करने और इस

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

की तरह परीक्षा खंड जोड़ने की जरूरत है :) Rspec तो वह "परीक्षण" परिवेश में चलता डेटाबेस से परीक्षण कुंजी के तहत देख रहे होंगे। एमआईएल विकास नहीं :)

+0

हां वास्तव में, आप सही हैं। परीक्षा टेस्ट पर्यावरण पर आयोजित की जानी चाहिए, जो कि रुपेक द्वारा निर्धारित डिफ़ॉल्ट मूल्य बताती है। उपरोक्त विन्यास चाल ने मुझे यह समझने में मदद की कि यह कैसे काम करता है, लेकिन दुबला नहीं है। दूसरी ओर, परीक्षण संचालित विकास विकास के लिए है ... मैं इसके बारे में एक चर्चा शुरू करूंगा ... – user1185081