簡體   English   中英

為什么grunt-contrib-jasmine掛了?

[英]Why is grunt-contrib-jasmine hanging?

我問這個是后代,因為我花了一些時間才弄清楚。

我有一個使用require.js和基於茉莉花的測試的應用程序,並通過grunt進行了自動化。

我將模塊分為邏輯組件,每個組件都位於app下的目錄中。 我的requirejs.config()調用為這些組件設置了路徑前綴,如下所示:

paths: {
    /*... vendor libraries are listed here ...*/
    ui: 'app/ui',
    data: 'app/data',
    /* etc */
}

然后,我可以像這樣指定對這些模塊的依賴關系:

define([ 'ui/some/module', 'data/another/module' ], function(ui_module, data_module) {
    /* code for module being defined goes here */
});

我的應用程序正常運行,並且測試通過了基於Web的運行程序,運行程序的結構與我在應用程序中使用的結構類似,該結構是文檔主體中指向require.js的單個<script>元素,並帶有一個data-main設置為test/index ,其中包含一個非常類似的requirejs.config()調用,僅包含測試本身的其他路徑,以及對window.onload()的調用,后者運行測試。

但是,當我使用grunt-contrib-jasmine時,測試掛起,並且沒有運行測試。 我收到的消息是:

>> Error: timeout: Load timeout for modules: [list of modules, all my own application modules]
>> http://requirejs.org/docs/errors.html#timeout at
>> http:/127.0.0.1:8000/_SpecRunner.html:21 
>> http:/127.0.0.1:8000/.grunt/grunt-contrib-jasmine/require.js:12 v
>> http:/127.0.0.1:8000/.grunt/grunt-contrib-jasmine/require.js:14 C
>> http:/127.0.0.1:8000/.grunt/grunt-contrib-jasmine/require.js:14 

我如何才能通過考試?

事實證明,我的requirejs.config()調用中的路徑前綴應包含一個斜杠:

paths: {
    /*... vendor libraries are listed here ...*/
    ui: 'app/ui/',
    data: 'app/data/',
    /* etc */
}

因此,使用'app/ui/'而不是'app/ui'

我仍然不確定這個的根本原因,因為兩個版本都可以在瀏覽器中工作。 也許是grunt任務正在使用的require.js的不同版本,或者它是幻影特有的。

留下這個問題和答案,這樣可以節省一些時間。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM