2011-10-12 59 views
2

我正在使用QUnit在我的網站上執行各種簡單的測試。其中一項測試是創建一個對話框,顯示並關閉它。測試運行正常,但是當Firefox的Firebug的運行激活我得到一個錯誤:在QUnit測試中引入全局變量_firebug

3. Introduced global variable(s): _firebug 

我可以住在一起,但很煩人:在Chrome相同的代碼運行正常。我排除了jQuery UI的罪魁禍首,因爲沒有它的同樣的錯誤出現。但是,如果沒有使用Firebug 而沒有使用console.log跟蹤,則不會顯示問題。

我grepped所有我使用的JavaScript代碼,發現沒有提及任何「螢火蟲」變數;谷歌對此事保持沉默。我想要我的綠屏(所有測試都通過)!有任何想法嗎?

+0

您特別提到「使用Firebug激活」,我們可以假設它不會在Firebug禁用時發生嗎?如果是這樣的話,我會查看Firebug,看看它在測試過程中的作用 - 可能是Firebug抱怨jQuery UI代碼的某些部分(或者您的使用情況),反過來創建這個全局變量。 –

+0

@AnthonyGrist無Firebug運行不會顯示問題。但更糟糕的是:使用Firebug運行_並且沒有任何console.log traces_問題不會被複制。此外:再次運行原始測試,但沒有jQuery UI顯示相同的問題。所以它似乎是一個Firebug和console.log的奇怪組合 - 我會相應地更新問題。感謝領先! – alexfernandez

回答

5

谷歌搜索多一點後,我不是第一個發現這個問題:badglobals.js,blog,Google groups。我的特定問題的解決方案(QUnit報告漏水的全局變量)是添加全局的聲明在開始測試之前,例如在運行第一模塊:

var _firebug; 
module('myModule'); 

我看到虛假XDC也是可變的;同樣的解我的第一個QUnit的測試文件現在看起來是這樣的:

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

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

我的酒吧全部是綠色,現在,即使noglobals檢查!我希望這可以幫助任何發現這個煩人問題的人。