2016-08-11 49 views
0

在我的Angular 2應用程序目錄中,連同所有組件一起,我有javascript單元測試腳本。他們require()不同的類和angular2/core模塊,但我不能測試與噶,因爲require()不允許在瀏覽器中。我正在使用SystemJS模塊捆綁器,但不知道如何在運行測試時對其進行捆綁。如何使用systemJS在Angular 2中捆綁我的單元測試腳本?

karma.conf.js文件:

module.exports = function(config) { 
    config.set({ 

     basePath: '', 

     frameworks: ['jasmine'], 

     files: [ 
      'app/**/*.spec-compiled.js' 
     ], 


     exclude: [ 
     ], 

     preprocessors: { 
     }, 

     reporters: ['progress'], 

     port: 9876, 

     colors: true, 

     logLevel: config.LOG_INFO, 

     autoWatch: true, 

     browsers: ['Chrome'], 


     singleRun: false, 

     concurrency: Infinity 
    }) 
} 
+0

只是好奇。你爲什麼捆綁一些永遠不會在生產中運行的東西?只要做你的「進口」和systemjs將動態加載你的模塊(一次一個)。 – vidalsasoon

+0

Em,爲了運行我的測試? SystemJS只加載打字稿/ ES6 Angular 2模塊。我仍然無法讓單元測試工作。 –

回答

0

我在一個類似的情況,我用一個桶來構建包。

我的桶的src /測試/ index.ts,它基本上再出口的所有測試:

export * from '../about/about.spec'; 
export * from './core/components/dropdown.spec'; 
export * from './core/models/session.spec'; 
export * from './core/models/user.spec'; 
export * from './core/models/version.spec'; 
export * from './core/services/simple-user-service.spec'; 
export * from './admin/simple-user-list.spec'; 
... 

在這一點上,我包的src /測試/ index.ts並將其拉自動所有需要依賴。