在维护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)
想起在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 )
================================================================================
通过了测试
在StackOverflow上看到Node可以这样配置
$ mocha --globals hasCert
在浏览器端
mocha.setup({globals: ['hasCert']});
于是
$ mocha --globals callback
最后,我的命令行是:
istanbul cover node_modules/mocha/bin/_mocha -- --globals callback -R spec
围观我的Github Idea墙, 也许,你会遇到心仪的项目