2

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

3. Introduced global variable(s): _firebug

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

我搜索了我正在使用的所有 javascript 代码,但没有发现任何“萤火虫”变量;谷歌对此事保持沉默。我想要我的绿屏(所有测试通过)回来!有任何想法吗?

4

1 回答 1

5

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

var _firebug;
module('myModule');

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

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

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

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

于 2011-10-13T17:11:17.537 回答