0

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

cmd行で、次のように仕様を(Windowsで)呼び出しています。

bundle exec rspec foo_controller_spec.rb

私の宝石ファイル:

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
4

1 に答える 1

0

やってみました?

rake spec

これは、RailsプロジェクトでRSpecを実行する方法です(少なくとも通常は)。

または

rake spec:controllers

たとえば、コントローラーに関する仕様のみを実行するには

于 2012-04-20T19:59:00.363 に答える