Tôi muốn có 'rake thử nghiệm: đơn vị' chạy các bài kiểm tra trên cơ sở dữ liệu thử nghiệm chuẩn bị thành công trong khi cơ sở dữ liệu phát triển của tôi là xuống. Hiện tại đường ray đang cố gắng xây dựng cơ sở dữ liệu thử nghiệm từ cơ sở dữ liệu phát triển. Điều này có thể không?Rails thử nghiệm thông qua cào: không chạm vào cơ sở dữ liệu dev của tôi
Tôi đang ở trong tình huống mà cơ sở dữ liệu sản phẩm/dev của tôi không hoạt động, nhưng với mục đích kiểm tra đơn vị, tôi đang sử dụng sqlite trong cơ sở dữ liệu bộ nhớ.
EDIT cho những hành động chính xác của tôi:Note Tôi đang sử dụng Rails 2,3
cơ sở dữ liệu thử nghiệm của tôi được thiết lập như thế này trong config/database.yml:
test:
adapter: sqlite3
database: 'sqlite3_unittest_file.dat'
pool: 5
timeout: 5000
Khi tôi chạy rake db:test:load
sự cơ sở dữ liệu thử nghiệm (chỉ là một tệp) được tạo chính xác trong thư mục gốc rails. Và khi tôi chạy rake test:units
, mọi thứ đều hoạt động.
Bây giờ nếu tôi chỉnh sửa database.yml
để thiết lập cơ sở dữ liệu DEV tên tôi một cái gì đó sai (như 'sdlkfj'), rake test:units
thất bại ngay lập tức phàn nàn:
Access denied for user 'sdlkfj'@'myhostnsmae' (using password: YES)
Khi tôi đang chạy build này 'thật' , Tôi đang chạy nó trong một hệ thống mà các bản xây dựng không được phép nói ra khỏi hộp trong quá trình xây dựng. Do đó nỗ lực này để nói chuyện với cơ sở dữ liệu dev và ngay lập tức croaking là giết chết tôi, và có vẻ không chính xác.
Thông thường, các thử nghiệm của bạn sẽ hoạt động mà không có cơ sở dữ liệu phát triển đang chạy. Bạn nên xem http://guides.rubyonrails.org/testing.html phần 3.1 và thay đổi câu hỏi của bạn để bạn đặt tên cho các bước bạn thực hiện. Dường như cơ sở dữ liệu phát triển là cần thiết ngay từ đầu và bạn không có sẵn nó. – mliebelt
Đã chỉnh sửa để thêm thông tin. –