[英]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.