首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Node.js mocha进程(_mocha)不会在CTRL-C上退出

Node.js mocha进程(_mocha)不会在CTRL-C上退出
EN

Stack Overflow用户
提问于 2014-04-10 02:01:45
回答 2查看 1.4K关注 0票数 8

mocha测试需要一段时间才能完成时,点击CTRL退出mocha命令,但不退出测试运行程序"_mocha",测试就会继续。有人知道这是故意的吗?

代码语言:javascript
复制
/* 
 * 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);
  });

});

此测试将运行10秒,然后退出。如果尝试用CTRL从终端中断它(或以其他方式向它发送SIGINT),测试运行程序将继续运行,您将在shell中看到类似的情况。

代码语言:javascript
复制
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 mocha 1.18.2

EN

回答 2

Stack Overflow用户

发布于 2015-03-26 02:56:55

引用Mocha的支持者关于这个问题的反馈:“您需要确保Mocha代码在某个时候停止运行。”

有关详细信息,请参阅下面的链接:

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

根据其他开发人员的说法,下面的代码即使在试图用CTRL+C杀死Mocha进程之后,也会使Mocha进程保持活动:

代码语言:javascript
复制
echo "while(1);" > file.js
mocha -w file.js 
票数 1
EN

Stack Overflow用户

发布于 2015-03-26 10:43:10

我不知道它们是什么时候修复的,但是在Mocha 2.1.0和2.2.1中,如果我在执行示例文件的过程中点击了Ctrl,我就会得到您想要的行为:立即停止。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22977350

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档