2012-06-12 36 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}"