【问题标题】:Mocha unit test: how to forcefully stop execution of test after timeout exceeded摩卡单元测试:超时后如何强制停止执行测试
【发布时间】:2019-10-03 18:34:58
【问题描述】:

我正在使用mocha运行单元测试,我想强制超时,如果函数超过30000,所以我设置了this.timeout(30000);

为了验证它的工作,我在测试用例中放置了无限循环,即使超时超过测试也不会返回。我希望这个测试在超时后停止执行。

这是测试

    it('should forcefully timeout',function(done) {
    this.timeout(30000);
     while(1) {
        for(var i = 0; i < 10000; i++) {
            if( i % 2 == 0 ) {
                console.log("here");
                for(var i=0; i < 10000; i++) {
                    if( i % 2 == 0 ) {
                        console.log("here1");  
                    }
                }
            }
        }

      }
      done();         
  })


【问题讨论】:

  • 如果去掉done回调会怎么样?
  • 试过删除完成,还是没有解决问题

标签: javascript unit-testing mocha.js chai


【解决方案1】:
  1. 异步运行那些可能需要很长时间的函数。
  2. 添加退出标志,mocha 将在测试完成时终止进程,即使异步函数仍在运行。例如: mocha \"test/**/*.js\" --exit

【讨论】:

    猜你喜欢
    • 2019-06-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-23
    • 1970-01-01
    • 2018-11-13
    • 1970-01-01
    相关资源
    最近更新 更多