使用节点检查器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器。