Blog

Blog

PHODAL

global leak detected: callback Mocha与Chai下修复

在维护IOT-CoAP包的时候,CI一直是处于红的状态。这是一个持续很久的问题,当时试了N种方法,也包括降低Mocha的版本。试了一次又一次的测试,最后还是失败了

1) Throw  Error Test should give more info:
 Error: global leak detected: callback
  at Runner.checkGlobals (/Users/phodal/learing/iot-coap/node_modules/mocha/lib/runner.js:179:21)
  at Runner.<anonymous> (/Users/phodal/learing/iot-coap/node_modules/mocha/lib/runner.js:58:44)

global leak detected: callback 在Mocha与Chai下修复

Chai Global Callback

想起在common.js里面有这样的配置

global.expect = require("chai").expect;
global.assert = require("chai").assert;
global.should = require('chai').should;

便试着将下面的一行加了进去:

global.callback = require('chai').callback;

结果

  27 passing (239ms)

=============================================================================
Writing coverage object [/Users/fdhuang/learing/iot-coap/coverage/coverage.json]
Writing coverage reports at [/Users/fdhuang/learing/iot-coap/coverage]
=============================================================================

=============================== Coverage summary ===============================
Statements   : 96.92% ( 283/292 )
Branches     : 87.5% ( 35/40 )
Functions    : 86.36% ( 76/88 )
Lines        : 96.92% ( 283/292 )
================================================================================

通过了测试

Mocha Globals Setup

在StackOverflow上看到Node可以这样配置

$ mocha --globals hasCert

在浏览器端

mocha.setup({globals: ['hasCert']});

于是

$ mocha --globals callback

最后,我的命令行是:

istanbul cover node_modules/mocha/bin/_mocha -- --globals callback -R spec

或许您还需要下面的文章:

关于我

Github: @phodal     微博:@phodal     知乎:@phodal    

微信公众号(Phodal)

围观我的Github Idea墙, 也许,你会遇到心仪的项目

QQ技术交流群: 321689806
comment

Feeds

RSS / Atom

最近文章

关于作者

Phodal Huang

Engineer, Consultant, Writer, Designer

ThoughtWorks 技术专家

工程师 / 咨询师 / 作家 / 设计学徒

开源深度爱好者

出版有《前端架构:从入门到微前端》、《自己动手设计物联网》、《全栈应用开发:精益实践》

联系我: h@phodal.com

微信公众号: 最新技术分享

标签