2014-06-13 12 views
11

tôi đang tạo ra một ứng dụng trên Ruby on Rails:bạn nên yêu cầu 'minitest/autorun' để thay thế. trong Ruby on Rails

Sau khi tạo người dùng, để phê chuẩn sử dụng Tôi đang chạy dưới lệnh:

$ bundle exec rake db:migrate 
$ bundle exec rake test:prepare 

Cả hai lệnh đang chạy đúng trên đường ray commandline, nhưng khi tôi chạy lệnh dưới đây:

$ bundle exec rspec spec/models/user_spec.rb 

tôi nhận được báo lỗi dưới đây:

Warning: you should require 'minitest/autorun' instead. 
Warning: or add 'gem "minitest"' before 'require "minitest/autorun"' 

Và tôi đang sử dụng 4.1.1 phiên bản rails. Tôi không hiểu tại sao nó lại đến. Vui lòng đề nghị tôi, chờ đợi câu trả lời của bạn. Cảm ơn.

+0

nếu bạn không sử dụng minitest, hãy xóa nó khỏi ứng dụng của bạn. – sevenseacat

+0

nhưng tôi đang sử dụng nó, vui lòng đề nghị tôi, tôi nên làm gì? – user88

+1

thì tại sao bạn lại cố chạy lệnh rspec? nó không phải là điển hình để sử dụng cả hai, họ làm cùng một công việc (thử nghiệm). – sevenseacat

Trả lời

6

Bao gồm đá quý minitest trong bạn 'Gemfile' và chạy gói cài đặt

gem install 'minitest' 

và sau đó bundle install

+0

Giải pháp câu trả lời này giống như giải pháp thay thế? Người hỏi, op, đang yêu cầu chạy một khung kiểm thử rspec - thêm một khung kiểm thử khác, minitest, có thể giải quyết cảnh báo nhưng có thể giới thiệu xung đột trong tương lai - người dùng Rspec sẽ muốn làm theo giải pháp sạch hơn của Chris Nelson. –

+0

Nó hoàn toàn không làm việc cho tôi. Minitest được cài đặt và vẫn có vấn đề, cho bất kỳ lệnh "cào" nào. Tôi đang sử dụng rake 10.4, đường ray 4.2.3 và ruby ​​2.1.5 –

+0

@AlexPierstoval Bạn đã chạy gói exec rake db: di chuyển và kiểm tra gói exec rake: chuẩn bị sau khi sửa đổi Gemfile, yêu cầu bạn vui lòng khởi động lại máy chủ và kiểm tra một lần nữa hoặc cho tôi biết nếu vấn đề vẫn còn đó, sẽ là tuyệt vời nếu u có thể cung cấp cho các thông báo lỗi chính xác. – cyborg

12

thêm một lưu ý cho hậu thế hơn bất cứ điều gì, nhưng vấn đề này cũng có thể xảy ra nếu bạn đang sử dụng phiên bản cũ của các matcher. Bạn có thể thấy một số cuộc thảo luận về việc này trên repo Github của họ here, hoặc trên repo rspec-rails here.

Cập nhật trình so khớp phù hợp bằng cách chạy bundle update shoulda-matchers. Bạn muốn có phiên bản mới nhất (hoặc ít nhất là 2.6.2) và thông báo này sẽ biến mất.

+1

Đây là giải pháp tốt hơn trừ khi bạn tình cờ sử dụng (và yêu cầu) 'minitest' trực tiếp trong ứng dụng của bạn. – jwadsack

+0

Rất đúng. Bản sửa lỗi này chỉ áp dụng nếu bạn đang sử dụng các trình so khớp phù hợp nhưng không phải là 'minitest'. –

+2

Cập nhật phiên bản mới nhất của phiên bản mới nhất đã giải quyết được sự cố. Cảm ơn! –