使用节点检查器debugging茉莉花节点testing
有没有人有任何想法,如果这是可能的? 节点检查器的大部分示例似乎适用于debugging被调用的网页。 我想能够debugging茉莉花节点testing虽然。
总之,只需debuggingjasmine-node:
node --debug-brk node_modules/jasmine-node/lib/jasmine-node/cli.js spec/my_spec.js
如果你看jasmine-node
脚本的来源,它只是调用cli.js
,我发现我可以debugging该脚本就好了。
我想使用节点检查器来debuggingCoffeeScripttesting。 只要添加 – --coffee
开关很好,例如
node --debug-brk node_modules/jasmine-node/lib/jasmine-node/cli.js --coffee spec/my_spec.coffee
我写了一个名为toggle的小工具:
require('tty').setRawMode(true); var stdin = process.openStdin(); exports.toggle = function(fireThis) { if (process.argv.indexOf("debug")!=-1) { console.log("debug flag found, press any key to start or rerun. Press 'ctrl-c' to cancel out!"); stdin.on('keypress', function (chunk, key) { if (key.name == 'c' && key.ctrl == true) { process.exit(); } fireThis(); }); } else { console.log("Running, press any key to rerun or ctrl-c to exit."); fireThis(); stdin.on('keypress', function (chunk, key) { if (key.name == 'c' && key.ctrl == true) { process.exit(); } fireThis(); }); } }
你可以把它放到你的unit testing中,如:
var toggle = require('./toggle'); toggle.toggle(function(){ var vows = require('vows'), assert = require('assert'); vows.describe('Redis Mass Data Storage').addBatch({ ....
然后运行你的testing:node –debug myfile.js debug。 如果你运行debugging切换将等待,直到你什么,但ctrl-c。 Ctrl-c退出。 你也可以重新运行,这很好。
w0000t。
我没有受到教育的猜测是,你需要修补茉莉花,我相信它产生了一个新的节点进程或运行testing时,这些新的进程将需要启用debugging。
我有一个类似的愿望,并成功地使用Eclipse作为debugging工具: http ://groups.google.com/group/nodejs/browse_thread/thread/af35b025eb801f43
…但是我意识到:如果我需要通过我的代码来理解它,我可能需要重构代码(可能是更可testing的),或者将我的testing分解成更小的单元。
你的testing是你的debugging器。