2012-01-09 35 views
5

Tôi đang sử dụng node.js và mô-đun nút nhài hoa nhài để chạy thử nghiệm. Điều này hoạt động hoàn hảo trừ khi mã tạo ra lỗi. Tôi không nhận được stacktrace. Ví dụ, một trong những bài kiểm tra của tôi chỉ kết quả đầu ra này:không có dấu vết ngăn xếp cho các lỗi nút hoa nhài

Error: TypeError: Cannot read property 'length' of undefined

Không stack trace. Điều này làm cho việc tìm kiếm các lỗi này tốn rất nhiều thời gian mà tôi đang tìm kiếm các lựa chọn thay thế cho nút nhài hoa nhài.

Làm cách nào để có được nút hoa nhài để xuất bản theo dõi ngăn xếp đầy đủ với lỗi? Cờ dòng lệnh --verbose không làm điều đó.

+0

Có thể sẽ hữu ích nếu bạn có thể đăng một đoạn mẫu thử nghiệm mã đang phá vỡ cùng với bản sao triển khai. –

+0

Vấn đề là có quá nhiều mã Tôi không biết đoạn mã nào cần đăng, bởi vì không có dấu vết ngăn xếp. – Jake

+0

Nếu mã của bạn là kiểu TDD, cần có một số lượng kiểm tra lành mạnh cho bất kỳ mã cơ thể quan trọng nào. Cho rằng, bạn có thể bình luận ra một bài kiểm tra tại một thời điểm cho đến khi bạn tuôn ra mã có vấn đề/kiểm tra –

Trả lời

4

Trong khi tôi chưa sử dụng nút nhài nút nhài, tôi đã gặp phải loại lỗi này trước đây. Theo kinh nghiệm của tôi, các loại lỗi đó được báo cáo khi vòng lặp không đồng bộ nằm ngoài phạm vi kiểm tra/impl của bạn không thành công ...

Những gì chúng tôi thực hiện để loại trừ tất cả ngoại lệ đó là thêm mã này trước khi thực hiện

process.on('uncaughtException',function(e) { 
    sys.log("Caught unhandled exception: " + e); 
    sys.log(" ---> : " + e.stack); 
}); 
7

Bạn có thể sử dụng tùy chọn --captureExceptions của jasmine-node để xuất ra dấu vết ngăn xếp của ngoại lệ toàn cầu.

+1

Tôi đã thấy rằng điều này không hoạt động. Tôi thường sử dụng Tape, và Jasmine là một mớ hỗn độn. Ngay cả Node được xây dựng trong khẳng định làm một công việc tốt hơn trên toàn bộ. – Jehan

+0

cái này giúp tôi. Cảm ơn! :) – rahmat

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