2013-03-30 42 views
11

我正在使用QUnit來測試我的JavaScript。我也在使用requirejs。我有測試代碼,看起來像這樣:QUnit autostart

QUnit.config.autostart = false; 

require(['tests/tests'], function() { 
    QUnit.start(); //Tests loaded, run tests 
}); 

這在FF(19.0.2,因爲它發生),偉大的,但在這兩種瀏覽器(27)和IE(10),我得到一個QUnit錯誤:

「pushFailure()外的測試情境斷言」

原來,我並不需要在IE和Chrome調用QUnit.start。任何人看到這個或有任何建議,爲什麼?

回答

13

如果有其他人遇到這個問題,我找到了解決方案。從經驗上講,只要訪問QUnit並開始加載調用,Chrome和IE都會觸發QUnit的加載事件。我所做的是這樣的:

<script type="text/javascript" src="qunit-1.11.0.js"></script> 
<script type="text/javascript"> 
    QUnit.config.autostart = false; 
</script> 
    <script type="text/javascript" data-main="main" src="require.js"></script> 

因此,負載QUnit,設置自動啓動,然後負載requirejs

這混亂不是設置自動啓動=假在main.js但它的工作的好處:)

+0

這也似乎是一個很好的修復:http://stackoverflow.com/questions/15921707/qunit-unit-test-error-on-jquery-ajax –