在QUnit测试中引入了全局变量_firebug

ale*_*dez 2 javascript jquery unit-testing jquery-ui qunit

我正在使用QUnit在我的网站上执行各种简单的测试.其中一个测试是创建一个对话框,显示它然后关闭它.测试运行正常,但在Firebug激活的Firefox上运行时出现错误:

3. Introduced global variable(s): _firebug
Run Code Online (Sandbox Code Playgroud)

我可以忍受它,但它很烦人:Chrome上的相同代码运行正常.我排除了jQuery UI作为罪魁祸首,因为没有它就会出现同样的错误.但是,在没有Firebug 没有console.log跟踪的情况下运行不会显示问题.

我grepped我正在使用的所有javascript代码,并没有发现任何"firebug"变量; 谷歌对此事保持沉默.我希望我的绿屏(所有测试都通过)回来了!有任何想法吗?

ale*_*dez 5

谷歌搜索后,我不是第一个发现这个问题的人:badglobals.js,博客,Google群组.我的特定问题的解决方案(QUnit报告泄漏的全局变量)是在开始测试之前添加全局声明,例如在第一个模块运行之前:

var _firebug;
module('myModule');
Run Code Online (Sandbox Code Playgroud)

我也看到了一个虚假的xdc变量; 同样的解决方 我的第一个QUnit测试文件现在看起来像这样:

/* declare spurious Firebug globals */
var _firebug;
var _xdc_;

/* run tests */
module('myModule');
Run Code Online (Sandbox Code Playgroud)

我的酒吧现在都是绿色的,即使检查了noglobals!我希望这可以帮助其他发现这个烦人问题的人.