2011-01-22 2 views
12

팩토리 걸 (Factory Girl)을 사용하여 seed 데이터를 채우고 seed.rb의 db에 추가했습니다.rake db : seed를 사용하여 시드 데이터를 테스트 데이터베이스에 추가하려면 어떻게합니까?

다음은 Cucumber를 사용하여 테스트를 실행합니다.

나는 내 모든 환경에서 원하는 시드 데이터를 포함하는 가격 테이블을 가지고 있습니다.

나는 rake db : seed를 내 dev test db 's에 추가하고 오이는 그 테스트 seed를 사용할 수 있기를 원한다. 그런 다음 씨앗 데이터를 추가합니다.

시드 데이터가 개발자 및 테스트 DB에 모두 추가되도록하려면 어떻게해야합니까? 비슷한 포스트에서

rake db:seed RAILS_ENV=test --trace 
rake db:seed RAILS_ENV=production --trace 

답변

31

이 뭔가를 시도 할 수 있습니다.

정말 테스트 데이터베이스를 채우기 위해 공장을 사용하는 것이 더 좋습니다. 테스트 중에 seed 데이터가 필요하면 spec_helper/test_helper에 before :all 블록으로 추가하십시오.

+0

이 해당 레이크 작업 환경을 바꿀 것인가? 나중에 재설정해야합니까? –

+0

실제로, rake가 database.yml 설정 파일에 따라 매개 변수를 사용하도록 말하고있는 것입니다. 어쨌든 적어도 당신이 배우고있을 때, 당신의 명령에 장황하게 말하는 것이 항상 좋은 생각입니다. 귀하의 레일 애플 리케이션을 실행할 수 있습니다 : scrip/server RAILS_ENV = development – Christian

7

체크 아웃 this answer :

rake db:seed #only adds it only to my dev database 
+0

+1 교육 –

+0

이 답변은 변경 내용을 가져 와서 컴퓨터에서 테스트를 실행하는 여러 개발자에게 더 좋습니다. 이 대답을 사용하면 문서를 읽도록 지시하지 않아도됩니다. 'rake db : seed RAILS_ENV = test --trace'를 실행할 것을 명령합니다. – Dominic

0

특히 테스트 데이터베이스에서 데이터를 보존하고 싶지 않으므로 테스트 데이터베이스로 작업 할 때 this thread을 방문 할 수도 있습니다.

테스트가 진행되면서 씨앗 데이터, 공장 및 모의 (mock)를 사용하여 자신을 발견하게 될 것이며, 지속적인 데이터가 있으면 충돌로 이어질 것입니다.

개인적으로 나는 내 rails_helper 내 테스트 데이터베이스에 대한 사용자 지정 시드 파일을 사용하고,로드하고자 :

DatabaseCleaner.strategy = :truncation 
DatabaseCleaner.clean 

load "#{Rails.root}/db/custom_test_seed.rb"