2011-03-13 4 views
1

레일 애플리케이션 테스트에 Rspec을 사용하고 있습니다. 데이터를 가져온 테이블이 두 개 있습니다 (테스트 및 개발 데이터베이스 모두)Rspec은 2 개의 특정 테이블을 삭제하지 않습니다.

전체 응용 프로그램이 테이블 데이터에 종속되어있어 전체 기능이이 테이블의 데이터를 계산하고 계산하여 다른 테이블에 저장합니다. 테이블.

테스트 할 때 이러한 테이블의 데이터를 삭제해도 아무런 문제가 없지만 Rspec은 여전히 ​​데이터를 삭제하고 있습니다.

내 질문 : Rspec이이 테이블의 데이터를 삭제하지 않도록하려면 어떻게해야합니까?

내 사양 도우미 파일

require 'rubygems' 
require 'spork' 

Spork.prefork do 

end 

Spork.each_run do 

end 


ENV["RAILS_ENV"] ||= 'test' 
require File.expand_path("../../config/environment", __FILE__) 
require 'rspec/rails' 

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

RSpec.configure do |config| 
    config.mock_with :rspec 

    config.fixture_path = "#{::Rails.root}/spec/fixtures" 

    config.use_transactional_fixtures = true 
end 
+0

사용중인 spec_helper의 rspec 구성은 무엇입니까? 여기에 붙여 넣기 –

+0

내 질문을 편집했습니다. – KensoDev

+1

데이터는 언제 생성됩니까? 그것은 씨앗에 있습니까? RB 또는 비품? 테스트 실행 중에 데이터가 작성되면 롤백됩니다. use_transactional_fixtures = true 플래그는이 동작을 제공합니다. 이 옵션을 사용하는 것이 좋습니다. –

답변

1

이 솔루션은 spec_helper.rb 파일에 이다 나는이

config.use_transactional_fixtures = true 

시험에서이

config.use_transactional_fixtures = false 

로 변경해야합니다 어디 데이터베이스를 정리할 필요가 없으면 delete_all 또는 database_를 사용하여 수동으로 정리하십시오. 청소기 (당신에게 편리한 곳)

그게 내 문제를 해결하고 테스트를 통해 데이터베이스를 영구히 만들었습니다.

관련 문제