2014-05-04 53 views
0

似乎有一些帖子與茉莉花1.3和Requirejs拼在一起,但我遇到了2.0的麻煩。我使用Jasmine 2.0進行測試,requirejs用於AMD兼容性測試,testr在我的測試中模擬了一些模塊。jasmine 2.0,requirejs,testr - 只是一個沒有錯誤的空白頁面

但是,當我打開該頁面時,它在控制檯中沒有任何內容。

如果這更有幫助,您可以在https://github.com/nopwd/client處看到該項目的全部內容。

我有一個test.html的頁面設置:

<!DOCTYPE html> 
<html> 
    <head> 
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
     <title>NoPwd Testing Rig</title> 

     <link type="text/css" rel="stylesheet" href="lib/jasmine/lib/jasmine-core/jasmine.css" /> 
    </head> 
    <body> 
     <script language="javascript" type="text/javascript" src="lib/requirejs/require.js"></script> 
     <script language="javascript" type="text/javascript" src="lib/testr.js/testr.js"></script> 

     <script language="javascript" type="text/javascript"> 
      testr.config({ 
       root: './', 
       baseUrl: './', 
       ignore: ['lodash'] 
      }); 

      testr.run('test.js', function() {}); 
     </script> 
    </body> 
</html> 

我也有一個test.js文件,該文件的入口點:

require.config({ 
    paths: { 
     // ... 
    }, 
    shim: { 
     'jasmine/jasmine': { 
      exports: 'window.jasmineRequire' 
     }, 
     'jasmine/jasmine-html': { 
      deps: ['jasmine/jasmine'], 
      exports: 'window.jasmineRequire' 
     }, 
     'jasmine/boot': { 
      deps: ['jasmine/jasmine', 'jasmine/jasmine-html'], 
      exports: 'window.jasmineRequire' 
     }, 
     'jasmine-ajax': { 
      deps: ['jasmine/jasmine', 'jasmine/boot'], 
      exports: 'window.jasmineRequire' 
     } 
    } 
}); 

require(
    [ 
     'jasmine/jasmine-html', 'jasmine/boot', 'jasmine-ajax', 
     'spec/nopwd-spec', 'spec/hash-spec', 'spec/transport-spec' 
    ], 
    function() { 
     'use strict'; 
    } 
); 

我知道以前的版本茉莉花你」 d必須撥打jasmine.getEnv().execute(),但2.0似乎不是這種情況。

回答

1

本質上,問題在於茉莉花附在window.onload()上。現在因爲調用了require(),所以已經使用了window.onload(),所以處理程序永遠不會被調用。我發現答案是在入口點內手動撥打window.onload()(對我來說:test.js)。

有一個很好的例子here

相關問題