2012-06-12 54 views
12

我試圖調試現有的Hubot腳本,並在將來編寫自己的腳本,並且我需要一種簡單的方法來調試它或至少在某處(但不是通道)打印值。我該怎麼做?在Hubot腳本中調試/打印

如果在一些交互式本地模式下僅使用Node就可以實現獎勵點。我真的不知道從哪裏開始。

Hubot使用的所有腳本都是用Coffeescript編寫的。

P.S.我正在和Hipchat一起使用Hubot。

回答

8

我自己發現了答案:console.log MSG .coffee Coffeescript源代碼正是我所需要的。

+7

您還可以運行留下了'-a '選項,這將讓你測試和調試腳本本地REPL。 –

+0

@Artem你在本地運行什麼命令來讓hubot啓動和一切?我也想在這裏調試一個腳本:) – mecampbellsoup

10

我不知道這是否有幫助,但我找到了一種方法來檢查對象。

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)}" 

這使得可以看到該對象的所有元素,所以我可以找出我做錯了......

+0

@radixhound所以''msg.send「foo」'在你通過類似'bin/hubot'的東西啓動Hubot後打印到控制檯?在此之前初始化Hubot的步驟是什麼?謝謝! – mecampbellsoup

+0

是的,我通過'bin/hubot'啓動Hubot,並將輸出放入迴應中。基本上從命令行啓動hubot並說'hi robot'並輸出信息。可能更好地做一些事情,而不是像「向我展示用戶」那樣。 – radixhound

3

您可以使用

robot.logger.info "your log message here" 

這將只是其記錄像其他的hubot消息被記錄一樣。

0

找到這個(coffeescript)片段的地方記錄所有錯誤,相當有助於添加到機器人的發展。

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