首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mocha中的全局泄漏错误

mocha中的全局泄漏错误
EN

Stack Overflow用户
提问于 2011-12-03 01:36:50
回答 9查看 24K关注 0票数 38

当我试图打开一个apple push notification library连接时,当我尝试单元测试APN时,我得到一个全局泄漏错误。

这是我的配置错误还是node-apn或mocha中的错误?

我不太清楚checkGlobals在做什么..。它只是检查是否设置了任何全局变量?

代码语言:javascript
复制
0) Feed "before all" hook:
   Error: global leak detected: hasCert
     at Runner.checkGlobals (/usr/lib/node_modules/mocha/lib/runner.js:96:21)
     at Runner.<anonymous> (/usr/lib/node_modules/mocha/lib/runner.js:41:44)
     at Runner.emit (events.js:64:17)
     at /usr/lib/node_modules/mocha/lib/runner.js:159:12
     at Hook.run (/usr/lib/node_modules/mocha/lib/runnable.js:114:5)
     at next (/usr/lib/node_modules/mocha/lib/runner.js:157:10)
     at Array.<anonymous> (/usr/lib/node_modules/mocha/lib/runner.js:165:5)
     at EventEmitter._tickCallback (node.js:126:26)
EN

回答 9

Stack Overflow用户

回答已采纳

发布于 2012-04-06 16:19:31

是的,Mocha具有全局泄漏检测机制,如果您测试的代码引入全局变量,该机制会发出警报并失败。

如果hasCert是在库中声明的,并且您无法控制它的创建,那么您可以告诉Mocha忽略它。

command line上,

代码语言:javascript
复制
$ mocha --globals hasCert

引用文档:

此选项接受以逗号分隔的可接受全局变量名列表。例如,假设您的应用程序故意公开一个全局命名的应用程序和YUI,您可能想要添加--globals app,YUI。

在浏览器中:

代码语言:javascript
复制
mocha.setup({globals: ['hasCert']});
票数 51
EN

Stack Overflow用户

发布于 2012-07-27 05:15:00

您还可以通过传递以下命令来禁用全局泄漏检测:

代码语言:javascript
复制
mocha --ignore-leaks

在浏览器中:

代码语言:javascript
复制
mocha.setup({ignoreLeaks: true});
票数 24
EN

Stack Overflow用户

发布于 2011-12-03 04:21:25

我也遇到了这个问题,您可能像我一样忘记了var语句,这在JS中意味着将创建一个全局变量。

你可能不得不根据你的应用程序的结构自己去寻找它,希望这不是由第三方的代码导致的。:P

你应该在你的项目中使用JSLintJSHint,如果源代码在你代码中的任何地方,它们应该会帮助你发现源代码。

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

https://stackoverflow.com/questions/8360318

复制
相关文章

相似问题

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