2012-04-20 67 views
0

我繼承了一些我試圖在Rails 3.0應用程序上運行的RSpec,但是我遇到了一些問題。出於某種原因,RSpecs運行在我的開發數據庫而不是我的測試數據庫上。我究竟做錯了什麼?在Rails中運行開發數據庫的RSpec

我打電話給我的規格(在Windows中),在CMD符合:

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

你在'配置/ database.yml'有什麼規格? – zetetic 2012-04-21 00:44:58

回答

0

有你試過嗎?

rake spec 

這是在Rails項目(至少通常)運行RSpec的的方式。

或者

rake spec:controllers 

例如,只運行有關於你的控制器

+0

謝謝。我如何讓它運行一個控制器腳本? – yellowreign 2012-04-21 03:18:42

相關問題