Node.js摩卡进程(_mocha)不会在CTRL-C时退出

mochatesting需要一段时间才能完成时,按CTRL-C退出mocha命令,但不退出testing运行器“_mocha”,testing继续。 有人知道这是否由devise?

 /* * test/mocha-kill-test.js */ describe("Mocha Timeout Test", function() { this.timeout(10e3); it("should exit when hitting CTRL-C", function(done) { var count = 0; var timer = setInterval(function() { if (count++ < 10) { console.log(" WAIT " + count); } else { console.log(" DONE"); clearInterval(timer); done(); } }, 1e3); }); }); 

此testing将运行10秒钟,然后退出。 如果你试图用CTRL-C从terminal中断它(或者发送一个SIGINT),testing运行器将继续运行,你会在shell中看到类似的东西。

 shell> mocha test/mocha-kill-test.js WAIT 1 WAIT 2 ^Cshell> WAIT 3 WAIT 4 WAIT 5 WAIT 6 WAIT 7 WAIT 8 WAIT 9 WAIT 10 DONE ․ 1 passing (11s) 

我看到mocha应该抓住SIGINT并做一个runner.abort()但是这不可能是预期的行为,对吧?

节点 v0.10.26
摩卡 1.18.2

引用摩卡的支持者对这个问题的反馈:“你需要确保摩卡的代码实际上在某个时刻停止运行。”

请参阅下面的链接了解更多详情

https://github.com/mochajs/mocha/issues/1362

根据其他开发人员的下面的代码将保持摩卡进程仍然活着,即使试图用CTRL + C杀死它:

 echo "while(1);" > file.js mocha -w file.js 

我不清楚他们在什么时候修好它,但是在Mocha 2.1.0和2.2.1中,如果我在执行示例文件的过程中按下了Ctrl-C,我会得到你正在寻找的行为:一切都会立即停止。