2012-06-12 44 views
12

Tôi đang cố gắng gỡ lỗi tập lệnh Hubot hiện tại và trong tương lai viết kịch bản của riêng mình và tôi cần một cách dễ dàng để gỡ lỗi hoặc ít nhất giá trị in ở đâu đó (nhưng không phải với kênh) . Làm thế nào tôi có thể làm như vậy?Gỡ lỗi/in trong tập lệnh Hubot

Điểm thưởng nếu điều này có thể được thực hiện chỉ bằng cách sử dụng Nút ở một số chế độ cục bộ tương tác. Tôi thực sự không chắc chắn nên bắt đầu từ đâu.

Tất cả tập lệnh Sử dụng Hubot được viết bằng Coffeescript.

P.S. Tôi đang sử dụng Hubot với Hipchat.

Trả lời

8

Tôi đã tự khám phá câu trả lời: console.log MSG trong nguồn .coffee Coffeescript thực hiện chính xác những gì tôi cần.

+7

Bạn cũng có thể chạy REPL bằng cách bỏ đi 'cái -a ' tùy chọn sẽ cho phép bạn kiểm tra và các kịch bản debug tại địa phương. –

+0

@Artem bạn đang chạy lệnh cục bộ nào để tải hubot lên và mọi thứ? Tôi cũng đang tìm cách gỡ lỗi một kịch bản ở đây :) – mecampbellsoup

10

Tôi không biết liệu điều này có giúp ích hay không nhưng tôi đã tìm cách kiểm tra các đối tượng.

Util = require "util" 

module.exports = (robot) -> 
    robot.hear /hi robot/i, (msg) -> 
    user = robot.brain.usersForFuzzyName(msg.message.user.name) 
    msg.send "#{Util.inspect(user)}" 

Điều này cho phép thể xem tất cả các yếu tố của đối tượng để tôi có thể tìm ra những gì tôi đã làm sai ...

+0

@radixhound do đó, không có 'msg.send" foo "' in bảng điều khiển sau khi bạn đã khởi động Hubot qua một cái gì đó như 'bin/hubot'? Bước trước bước này để khởi tạo Hubot của bạn là gì? Cảm ơn! – mecampbellsoup

+0

Có, tôi khởi động Hubot qua 'bin/hubot' và tôi đặt đầu ra bên trong phản hồi. Về cơ bản khởi động hubot từ dòng lệnh và nói 'hi robot' và nó xuất ra thông tin. Có lẽ tốt hơn để làm một cái gì đó thay vì như 'chỉ cho tôi người dùng'. – radixhound

3

Bạn có thể sử dụng

robot.logger.info "your log message here" 

Điều đó sẽ đăng nó chỉ giống như các thông điệp hubot khác được đăng nhập.

0

Tìm đoạn mã (coffeescript) này ở đâu đó để ghi lại tất cả các lỗi, khá hữu ích để thêm vào chương trình đang phát triển.

robot.error (err, res) -> robot.logger.error "#{err}\n#{err.stack}" if res? res.reply "#{err}\n#{err.stack}"

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