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

时间:2011-10-12 13:12:44

标签: javascript jquery unit-testing jquery-ui qunit

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

3. Introduced global variable(s): _firebug

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

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

1 个答案:

答案 0 :(得分:5)

点击谷歌后,我不是第一个发现此问题的人:badglobals.jsblogGoogle groups。我的特定问题的解决方案(QUnit报告泄漏的全局变量)是在开始测试之前添加全局声明,例如在第一个模块运行之前:

var _firebug;
module('myModule');

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

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

/* run tests */
module('myModule');

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