2011-08-25 91 views
1

有沒有人使用addon-sdk(cfx test)的單元測試?firefox addon-sdk unit-tests

我做了一個試驗,看起來像這樣:

exports.test_open_tab = function(test) { 
    const tabs = require("tabs"); 
    tabs.open({ 
     url: "http://valid url with lots of params", 
     onReady: function(tab) { 
      test.done(); 
     } 
    }); 

    test.waitUntilDone(600*1000); 
}; 

基本上這應該打開一個標籤,等待600秒,並把它們標記爲通過。

實際上顯示了很多錯誤和警告在控制檯從加載的頁面(jquery和谷歌分析的東西,被加載的頁面使用),然後它標記測試失敗。

任何想法,爲什麼?

回答

2

一個顯而易見的問題是您實際上沒有任何測試結果。如果事實onReady()被稱爲是一個積極的結果,你應該寫:

onReady: function(tab) { 
    test.pass("onReady called"); 
    test.done(); 
} 

順便說一下,它會等待600秒唯一情況是,如果onReady不叫出於某種原因。否則您的test.done()調用將完成測試執行。

通過禁用javascript.options.strict preference,可以稍微減少記錄的警告數量。但是,這些警告可能表明存在實際問題,並且在當前的Firefox版本中,在控制檯中關閉顯示JavaScript和CSS警告可能更有意義。

+0

根據https://addons.mozilla.org/en-US/developers/docs/sdk/1.0/packages/api-utils/docs/unit-test.html,它只是等待'test.done( )'被調用。我會嘗試調用'.pass()'當我有機會(我沒有訪問開發計算機atm) – Quamis

+0

你知道任何方式來忽略網頁產生的警告和錯誤,但顯示附加錯誤?我的插件不得不從網頁加載一些文本,所以我需要能夠打開頁面,然後調用一些插件函數來實際測試它。 – Quamis

+0

是的,test.pass做到了。仍然沒有;噸擺脫網頁錯誤雖然 – Quamis