node.js mocha 在未捕获错误时回退到调试器
node.js mocha fallback to debugger on uncaught error
在 node.js 中有没有办法模拟 python
的行为(最好是 mocha)
python -m pdb setup.py test
如果程序抛出未捕获的异常,将回退到调试界面。
编辑
@robertklep 建议使用未记录的 breakOnException
命令,它看起来非常棒,但实际上并不多:
test.js
var hello = {};
function testFunc () {
anotherFunct();
}
function anotherFunct () {
var b = hello.unfound;
}
testFunc();
然后冻结在:
$ node debug test.js
< Debugger listening on port 5858
connecting to port 5858... ok
break in test.js:1
> 1 var hello = {};
2 function testFunc () {
3 anotherFunct();
debug> breakOnException
debug> c
debug> backtrace
EDIT2:test.js 首先没有产生错误。以上工作正常。
将此添加到您的脚本中:
process.on('uncaughtException', function() {
debugger;
});
并以 node debug script.js
开头。这将使您在 exceptions/errors.
未被捕获时进入 debugger
为了让这个(某种程度上)适用于 Mocha 测试,您可以添加上面的行并按照说明 here(特别是安装 node-inspector
并使用 --debug-brk
启动 Mocha)。
编辑:Node 调试器也有能力中断 errors/exceptions:
$ node debug script.js
debug> breakOnException
debug> c
...
在 node.js 中有没有办法模拟 python
的行为(最好是 mocha)python -m pdb setup.py test
如果程序抛出未捕获的异常,将回退到调试界面。
编辑
@robertklep 建议使用未记录的 breakOnException
命令,它看起来非常棒,但实际上并不多:
test.js
var hello = {};
function testFunc () {
anotherFunct();
}
function anotherFunct () {
var b = hello.unfound;
}
testFunc();
然后冻结在:
$ node debug test.js
< Debugger listening on port 5858
connecting to port 5858... ok
break in test.js:1
> 1 var hello = {};
2 function testFunc () {
3 anotherFunct();
debug> breakOnException
debug> c
debug> backtrace
EDIT2:test.js 首先没有产生错误。以上工作正常。
将此添加到您的脚本中:
process.on('uncaughtException', function() {
debugger;
});
并以 node debug script.js
开头。这将使您在 exceptions/errors.
为了让这个(某种程度上)适用于 Mocha 测试,您可以添加上面的行并按照说明 here(特别是安装 node-inspector
并使用 --debug-brk
启动 Mocha)。
编辑:Node 调试器也有能力中断 errors/exceptions:
$ node debug script.js
debug> breakOnException
debug> c
...