2017-05-05 18 views
0

私の環境は公式のAngular2クイックスタートと非常によく似ています。違いはpublic/src/appの代わりにpublic/appです。被試験部品にロードさAngular2テスト、SystemJSがモジュールをロードできない

@ViewChild('profileModal') 
profileModal: ModalComponent; 

import { ModalComponent } from 'ng2-bs3-modal/ng2-bs3-modal'; 

npm testこのエラーを示す:

05 05 2017 17:45:48.218:WARN [web-server]: 404: /base/ng2-bs3-modal/ng2-bs3-modal 
[1] Chrome 58.0.3029 (Mac OS X 10.12.2) ERROR 
[1] { 
[1]  "originalErr": { 
[1]  "__zone_symbol__currentTask": { 
[1]   "type": "microTask", 
[1]   "state": "notScheduled", 
[1]   "source": "Promise.then", 
[1]   "zone": "<root>", 
[1]   "cancelFn": null, 
[1]   "runCount": 0 
[1]  } 
[1]  }, 
[1]  "__zone_symbol__currentTask": { 
[1]  "type": "microTask", 
[1]  "state": "notScheduled", 
[1]  "source": "Promise.then", 
[1]  "zone": "<root>", 
[1]  "cancelFn": null, 
[1]  "runCount": 0 
[1]  } 
[1] } 

ViewChildComponentをテストしようとする

karma.config.js : [簡潔にするために省略さ]

それがしようとしているように私は、 /base/npm_modules/ng2-bs3-modal/ng2-bs3-modal代わりの /base/ng2-bs3-modal/ng2-bs3-modalからロードするように karmaを伝えることができますどのように
module.exports = function(config) { 
    var appBase = 'app/';  // transpiled app JS and map files 
    var appSrcBase = appBase;  // app source TS files 

    config.set({ 
    basePath: '.', 

    proxies: { 
     '/base/node_modules/': '/base/node_modules/' 
    }, 
    }) 
} 

Webpackの代わりにSystemJsを使用します。あなたはすでにあなたの設定ファイルでそのセクションを持っている場合

files: [ 'node_modules/ng2-bs3-modal/ng2-bs3-modal.js' ] 

わからないが、念のために、心に留めておく:

答えて

1

あなたはこのように、karma.configファイルのファイルセクションにそれを置く必要がありますあなたはそれがあなたのアプリケーションとその依存関係をロードできるようにあなたのsystemjs設定を渡すことができる:

files: [ 
    // System.js for module loading 
    'node_modules/systemjs/dist/system.src.js', 

    // Load any lib not included in systemjs.config here, like zone.js 
    'node_modules/zone.js/dist/zone.js', 

    // RxJs 
    { pattern: 'node_modules/rxjs/**/*.js', included: false, watched: false }, 
    { pattern: 'node_modules/rxjs/**/*.js.map', included: false, watched: false}, 
    // Paths loaded via module imports: 
    // Angular itself 
    { pattern: 'node_modules/@angular/**/*.js', included: false, watched: false }, 
    { pattern: 'node_modules/@angular/**/*.js.map', included: false, watched: false }, 

    { pattern: 'systemjs.config.js', included: false, watched: false }, 
    { pattern: 'systemjs.config.extras.js', included: false, watched: false }, 
    'karma-test-shim.js', 
] 

あなたはそれについての詳細については、このpostを参照することができます。

関連する問題