j03*_*03m 31 debugging node.js jasmine
有没有人知道这是否可能?节点检查器的大部分示例似乎都适合调试调用的网页.我希望能够调试jasmine-node测试.
Ian*_*Ian 32
简而言之,只需调试jasmine-node:
node --debug-brk node_modules/jasmine-node/lib/jasmine-node/cli.js spec/my_spec.js
Run Code Online (Sandbox Code Playgroud)
如果您查看jasmine-node
脚本的源代码,它只是调用cli.js
,我发现我可以调试该脚本.
我想使用node-inspector来调试CoffeeScript测试.只需添加--coffee
开关就可以很好地工作,例如
node --debug-brk node_modules/jasmine-node/lib/jasmine-node/cli.js --coffee spec/my_spec.coffee
Run Code Online (Sandbox Code Playgroud)
我最后写了一个叫做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();
});
}
}
Run Code Online (Sandbox Code Playgroud)
您可以将其放入单元测试中,例如:
var toggle = require('./toggle');
toggle.toggle(function(){
var vows = require('vows'),
assert = require('assert');
vows.describe('Redis Mass Data Storage').addBatch({
....
Run Code Online (Sandbox Code Playgroud)
然后运行你的测试,如:node --debug myfile.js debug.如果你运行调试切换将等到除ctrl-c之外的任何东西.Ctrl-c退出.你也可以重新运行,这很好.
w0000t.
归档时间: |
|
查看次数: |
8419 次 |
最近记录: |