2012-06-12 2 views
12

기존 Hubot 스크립트를 디버깅하려고하고 있으며 앞으로 내 자신을 작성하려고합니다. 디버깅하거나 최소한 어딘가에서 값을 인쇄하는 쉬운 방법이 필요합니다 (채널이 아닌) . 그렇게하려면 어떻게해야합니까?Hubot 스크립트에서 디버깅/인쇄

노드를 일부 대화 형 로컬 모드로 사용하면 보너스 포인트를 얻을 수 있습니다. 어디서부터 시작해야할지 모르겠습니다.

Hubot이 사용하는 모든 스크립트는 Coffeescript로 작성되었습니다.

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

+0

@radixhound 이렇게하면'bin/hubot '같은 것을 통해 Hubot을 시작한 후에'msg.send "foo"'콘솔로 출력합니까? 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}"

관련 문제