2012-06-12 5 views
12

私は既存のHubotスクリプトをデバッグしようとしていますが、今後は自分自身で作成する必要があり、デバッグや少なくとも値の出力は簡単です(チャンネルではありません) 。どうすればいいですか?Hubotスクリプトでのデバッグ/印刷

これは、ノードをいくつかの対話型ローカルモードで使用するだけでよい場合は、ボーナスポイントです。私は本当にどこから始めたらいいのか分かりません。

Hubotが使用するすべてのスクリプトは、Coffeescriptで書かれています。

P.S.私はHubotとHipchatを使用しています。

答えて

8

自分自身で答えを見つけました。コーヒーのCoffeescriptソースのconsole.log MSGは、私が必要としていたものとまったく同じです。

+7

また、あなたがローカルでテストし、デバッグスクリプトできるようになる '-a 'オプションを残すことによってREPLを実行することができます。 –

+0

@Artemハットットを起動させるためにローカルで実行しているコマンドは何ですか?私はここでもスクリプトをデバッグしようとしています:) – 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)}" 

これは、あなたはそれを記録します

robot.logger.info "your log message here" 

を使用することができます

+0

@ radixhound 'bin/hubot 'のようなものでHubotを起動した後、' msg.send "foo" 'をコンソールに出力しますか? Hubotを初期化する直前のステップは何ですか?ありがとう! – mecampbellsoup

+0

はい、私はbin/hubot経由でHubotを起動し、出力を応答の中に入れます。基本的には、コマンドラインからhubotを起動し、 'hi robot'と言うと、情報を出力します。おそらく、「私にユーザーを見せてください」のような何かをする方がよいでしょう。 – radixhound

3

...私は私が間違って何をしていたかを把握できるよう、オブジェクトのすべての要素を参照することが許さ他のハッボットメッセージのようにログに記録されます。

0

すべてのエラーを記録するこの(coffeescript)スニペットが見つかりました。開発中のボットに追加すると非常に役立ちます。

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