2011-01-22 8 views
12

Tôi đang sử dụng Factory Girl để điền dữ liệu hạt giống của tôi và thêm nó vào db trong seed.rb.Làm cách nào để thêm dữ liệu hạt giống vào cơ sở dữ liệu thử nghiệm của tôi bằng cách sử dụng rake db: seed?

Tôi đang chạy thử nghiệm bằng cách sử dụng Cucumber.

Tôi có bảng giá chứa dữ liệu hạt giống mà tôi muốn trong tất cả các môi trường của mình.

Tôi muốn rake db: hạt giống để thêm nó vào dev của tôi kiểm tra db và cho dưa chuột để có thể sử dụng hạt giống thử nghiệm đó. Sau đó, tôi sẽ thêm dữ liệu hạt giống đó vào sản phẩm.

Làm cách nào để đảm bảo rằng dữ liệu hạt giống của tôi được thêm vào cả dev và db thử nghiệm?

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

Trả lời

31

Bạn có thể thử một cái gì đó như thế này:

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

này sẽ thay đổi môi trường chỉ dành cho rằng nhiệm vụ cào? Tôi có cần đặt lại sau đó không? –

+0

Không thực sự, bạn chỉ cần nói rake để sử dụng các tham số theo tệp cấu hình database.yml của bạn. Dù sao, luôn luôn là một ý tưởng tốt để được tiết lộ trong các lệnh của bạn, ít nhất là khi bạn đang học. Bạn có thể chạy ứng dụng đường ray của mình: scrip/server RAILS_ENV = development – Christian

7

Check-out this answer từ một bài tương tự.

Tôi thực sự nghĩ tốt hơn nên sử dụng các nhà máy để điền vào cơ sở dữ liệu thử nghiệm. Và nếu bạn cần dữ liệu hạt giống trong khi thử nghiệm, hãy thêm nó dưới dạng một khối before :all trong spec_helper/test_helper.

+0

+1 cho giáo dục –

+0

Câu trả lời này tốt hơn cho nhiều nhà phát triển, những người muốn thay đổi và chạy thử nghiệm trên máy của họ. Sử dụng câu trả lời này, bạn sẽ không phải yêu cầu họ đọc tài liệu, điều đó sẽ hướng dẫn họ chạy: 'rake db: seed RAILS_ENV = test --trace' mỗi lần. – Dominic

0

Bạn cũng có thể truy cập this thread khi làm việc với cơ sở dữ liệu thử nghiệm, đặc biệt là vì bạn không muốn lưu dữ liệu trong cơ sở dữ liệu thử nghiệm của mình.

Khi các thử nghiệm của bạn bắt đầu phát triển, bạn sẽ thấy mình sử dụng dữ liệu hạt giống, nhà máy, cũng như mocks, và với dữ liệu liên tục, bạn sẽ thấy mình gặp phải xung đột.

Cá nhân tôi muốn sử dụng một tập tin hạt giống tùy chỉnh cho cơ sở dữ liệu thử nghiệm của tôi, và tải nó trong rails_helper tôi:

DatabaseCleaner.strategy = :truncation 
DatabaseCleaner.clean 

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