2011-08-21 31 views
5

Tôi đã tự hỏi liệu tôi có thể chạy thử nghiệm của mình dưới giao diện điều khiển đường ray chứ không phải là dòng lệnh. Thực tế lý do cho điều này là kiểm tra rake: các đơn vị trên dòng lệnh mất nhiều thời gian để tải môi trường đường ray. Vì vậy, tôi nghĩ, tại sao không bắt đầu một giao diện điều khiển để tải môi trường một lần và sau đó tiếp tục chạy rake đơn vị: kiểm tra mỗi lần tôi muốn kiểm tra mã của tôi. Sau khi tất cả, đường ray có nghĩa là để được nhanh nhẹn và thúc đẩy phát triển nhanh nhẹn. Vì vậy, tôi đã thử điều này. Trước hết tôi phải nói:Rails console và kiểm tra rake: unit

require 'Rake'

nhưng ngay cả sau khi làm mà tôi nhận được thông báo lỗi:

irb(main):002:0> Rake::Task['test.units'].invoke 
RuntimeError: Don't know how to build task 'test.units' 

Tôi đoán tôi cần phải bằng cách nào đó cho nó nơi để xem xét. Có suy nghĩ gì không?

Cảm ơn

Chris

Trả lời

5
ruby-1.9.2-p290 :001 > require 'rake' 
ruby-1.9.2-p290 :002 > r = Rake.application 
ruby-1.9.2-p290 :003 > r.init 
ruby-1.9.2-p290 :004 > r.load_rakefile 
ruby-1.9.2-p290 :005 > r['test:units'].invoke 
+1

Cảm ơn, nó đã hoạt động lần đầu tiên (nhưng thực sự vẫn mất nhiều thời gian để chạy) và sau đó trả về nil khi tôi thử chạy r ['test: units']. Tôi nghĩ tôi sẽ nhìn Spork. – Chris

+1

Trên thực tế, việc thêm r.clear cho phép tôi lặp lại r.load_rakefile và r ['test: units']. Thời gian chạy trên máy tính của tôi đã giảm từ 80 giây (rake trên dòng lệnh) đến 25 giây, và do đó cải thiện đáng kể, mặc dù vẫn còn khá chậm. – Chris

0

Một ý tưởng tốt hơn là sử dụng Spork để giữ cho môi trường nạp và sau đó Autotest để chạy thử nghiệm tự động khi file thay đổi.

+0

Vâng, tôi nghĩ đây là con đường để đi. Tuy nhiên, tôi đang sử dụng RoR trong một mô-đun uni nhỏ và không muốn phải nói về rspec và những thứ khác không được trình bày trong cuốn sách Rails Agile Software Development. Tôi tự hỏi liệu các gói rails lõi nên chuyển sang spork vv Có vẻ như một chút kỳ lạ rằng nó vẫn còn bao gồm công nghệ thử nghiệm đó là quá chậm cho TDD. – Chris

Các vấn đề liên quan