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
...