2009-10-28 32 views
17

Làm thế nào đến các lệnh như đặt và in không hiển thị trong bảng điều khiển khi chạy ActiveSupport :: TestCase tests?Xuất (đặt, in) trong Kiểm tra Đơn vị Rails

Làm cho nó rất khó để gỡ lỗi nếu tôi không thể xuất ra một số kiểm tra trong một vài phương pháp.

Cảm ơn!

Trả lời

22

Bạn có thể sử dụng các đường ray logger để xem đầu ra của bạn:

Rails::logger.debug "Interesting stuff" 

Run tail -f log/test.log trên dòng lệnh (từ chữ gốc của dự án trong một tab ga hoặc cửa sổ riêng) để xem kết quả.

+0

Yep, làm việc như một nét duyên dáng! – Alexandre

+2

Trong đường ray 3 bạn có thể thấy đặt đầu ra nếu bạn chạy thử nghiệm của bạn với rake - dấu vết –

+0

Hmm .. không phải trong số này làm việc với Rails 3, kiểm tra ruby ​​thông thường hoặc với spork. – Trip

3

Tôi sử dụng đặt tất cả thời gian vào các bài kiểm tra khi tôi nhanh chóng hack một lần thử. Vì vậy, tôi không sử dụng thử nghiệm rake: *, thay vì chạy thử nghiệm cá nhân và đầu ra xuất hiện.

ruby -Itest test/unit/user/context_test.rb 
6

Tôi vừa đấu tranh với điều này dưới đường ray (3.2). Tôi không biết làm thế nào mọi thứ đã thay đổi giữa các phiên bản nhưng câu trả lời không thực sự trả lời câu hỏi. Thay vì sử dụng

$stdout.puts msg 

xuất ra bàn điều khiển cùng với các thông báo điều khiển khác khi chạy thử nghiệm riêng lẻ.

+0

hoạt động cho đường ray 2.0.2 (câu trả lời hàng đầu không) –

+0

câu trả lời đơn giản hơn. Hoạt động trên ** Rails 4.0.13 ** – RousseauAlexandre

0

Bạn có thể sử dụng puts trong một thử nghiệm cá nhân như sau ví dụ:

puts "\n\n #{@object.name}" 

này sẽ giống như thế như sau trong cửa sổ terminal của bạn như các bài kiểm tra chạy

Started E ... EEE

Vương quốc Anh .E

Hoàn thành trong 2.787886 giây.

(nơi @object.name == "United Kingdom" trong trường hợp này)

Đó là khá một phương pháp thô nhưng rất nhanh chóng để gỡ lỗi đơn giản