2012-04-20 8 views
0

Rails 3.0アプリケーションで実行しようとしているRSpecを継承しましたが、いくつかの問題があります。何らかの理由で、テストデータベースではなく開発データベースでRSpecが実行されています。私は間違って何をしていますか?Railsで開発用DBを実行するRSpec

私はCMDライン上で、(Windowsの場合)私の仕様を呼んでいる:

bundle exec rspec foo_controller_spec.rb 

マイgemfile:

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

group :test do 
    gem 'rspec' 
    gem 'webrat' 
    gem 'pickle' 
    gem 'shoulda' 
    gem 'shoulda-matchers' 
    gem 'capybara' 
    gem 'database_cleaner' 
    gem 'factory_girl_rails' 
    gem 'launchy' 
    gem "mocha", :require => false 
    gem 'fixture_builder' 
    gem 'ZenTest' 
    gem 'assert_difference' 
    gem 'database_cleaner' 
    gem 'term-ansicolor' 
    gem 'spork' 
    gem 'assert_difference' 
end 

spec_helper.rb

require 'rubygems' 
require 'spork' 
$LOAD_PATH.unshift(File.dirname(__FILE__)) 
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib')) 

Spork.prefork do 
    ENV["RAILS_ENV"] ||= 'test' 
    require File.expand_path("../../config/environment", __FILE__) 
    require 'rspec/rails' 
    require 'capybara/rspec' 
    require 'fixture_builder' 
    require 'database_cleaner' 
    require "authlogic/test_case" 
    require 'chargify_api_ares' 
    require 'term/ansicolor' 

    Dir[Rails.root.join("spec/support/**/*.rb")].each {|f| require f} 
    DatabaseCleaner.strategy = :truncation 

    RSpec.configure do |config| 
     config.mock_with :rspec 
     config.color_enabled = true 
     config.include AssertDifference 
     config.include Webrat::HaveTagMatcher 
     config.fixture_path = "#{::Rails.root}/spec/fixtures" 
     config.include Devise::TestHelpers, :type => :controller 
     config.use_transactional_fixtures = true 
     config.include AssertDifference 
     config.include(MailerMacros) 
     config.before(:each) { reset_email } 

     config.before(:suite) do 
     DatabaseCleaner.strategy = :transaction 
     DatabaseCleaner.clean_with(:deletion) 
     end 

     config.before(:each) do 
     DatabaseCleaner.start 
     end 

     config.after(:each) do 
     DatabaseCleaner.clean 
     end 
    end 
end 

Spork.each_run do 
end 
+0

に関してのみ仕様を実行するには? – zetetic

答えて

0

はあなたを持っています試した?

rake spec 

RSpecをレールプロジェクト(少なくとも通常は)で実行する方法です。

それとも

rake spec:controllers 

例えば、あなたのコントローラあなたがの `config/database.yml`に持っているかどう

+0

ありがとうございます。どのように私はそれを1つのコントローラスクリプトのために走らせるのですか? – yellowreign

関連する問題