Rails 3.1 응용 프로그램에 다음과 같은 spec_helper.rb 파일이 있습니다. Spork을 사용하여 테스트 환경을 더 빨리로드합니다. 모든 테스트는 Spork를 믹스에 추가하기 전에 수행되었습니다. spork을 추가 한 후, 테스트 데이터베이스는 제 기대치를 버리는 테스트 실행 사이에서 제대로 지워지지 않았습니다.Spork, RSpec 및 database_cleaner가 개발 데이터베이스를 파손합니다.
다른 지침에 따라 database_cleaner를 아래 코드와 함께 추가했습니다. 그러나 이제는 개발 데이터베이스가 테스트 데이터베이스와 함께 정리되고 있습니다. 이 호출 중에 ENV [ "RAILS_ENV"] 호출이 테스트를 반환합니다.
DatabaseCleaner.clean_with (: truncation)에 대한 호출을 테스트 데이터베이스에만 영향을 미치도록 명시 적으로 제한하는 방법이 있습니까?
require 'rubygems'
require 'spork'
Spork.prefork do
ENV["RAILS_ENV"] ||= 'test'
require File.expand_path("../../config/environment", __FILE__)
require 'rspec/rails'
require 'shoulda/matchers/integrations/rspec'
require 'database_cleaner'
Dir[Rails.root.join("spec/support/**/*.rb")].each {|f| require f}
RSpec.configure do |config|
config.mock_with :mocha
config.formatter = 'documentation'
config.use_transactional_fixtures = true
config.before(:suite) do
DatabaseCleaner.strategy = :truncation
end
config.before(:each) do
DatabaseCleaner.start
end
config.after(:each) do
DatabaseCleaner.clean
end
end
end
Spork.each_run do
FactoryGirl.reload
end
업데이트 : (각) 여기에 또
development:
adapter: sqlite3
database: db/development.sqlite3
pool: 5
timeout: 5000
test:
adapter: sqlite3
database: db/test.sqlite3
pool: 5
timeout: 5000
production:
adapter: sqlite3
database: db/production.sqlite3
pool: 5
timeout: 5000
, 내가 이전에 clean_with 통화를 이동하여 기본 문제를 해결 일한 내 database.yml을 파일입니다 부분,하지만 속도가 느려집니다 테스트가 크게 실행됩니다.
당신의'database.yml'은 무엇입니까? – Bohdan
정보를 포함하도록 질문을 업데이트했습니다. –
나는 또한 같은 문제에 직면하고 있습니다. 현재 이런 일이 일어나지 않도록 RAILS_ENV = test bundle exec rake spec을 사용합니다. – subosito