2017-05-03 21 views
0

typescriptのカルマテストを設定しようとしています。[karma]:エラー:モジュールを解決できません[expose-loader?jQuery!jquery]

karma.conf.js

module.exports = function (config) { 
    config.set({ 
     frameworks: ['jasmine', 'karma-typescript'], 
     files: [ 
      {pattern: 'src/main/**/*.ts'}, // Actual code 
      {pattern: 'src/test/**/*.ts'}, // Unit tests 
     ], 
     preprocessors: { 
      'src/main/**/*.ts': ['karma-typescript', 'coverage'], 
      'src/test/**/*.ts': ['karma-typescript'] 
     }, 
     reporters: ['progress', 'junit', 'coverage'], 

     // the default configuration 
     junitReporter: { 
      ... 
     }, 

     coverageReporter: { 
      type: 'lcov', 
      subdir: '.', 
      dir: 'target/' 
     }, 

     browsers: ['PhantomJS'], 

     singleRun: true, 
     autoWatch: true, 
     logLevel: config.LOG_INFO, 
     colors: true, 
     port: 9876 
    }); 
}; 

コード自体はまだ何もしていますが、:

import "expose-loader?jQuery!jquery"; 
import "expose-loader?Tether!tether"; 

import "../scss/main.scss"; 
import "bootstrap"; 

とテスト:

it("should expose jquery to window", () => { 
    expect(window["jQuery"]).toBeDefined(); 
    expect(window["$"]).toBeDefined(); 
}); 

私が持っている問題がありますkarmaがWebpackからのエクスポーズローダーを理解できないというエラー:

ERROR [カルマ]:エラー:モジュールを解決することができません[公開-ローダーをjQueryのjQueryの?!]

誰かがこの上でいくつかの光を当てるしてください可能性があります。 jqueryを手動で入力するとエクスポーズローダーがなくても、すべて正常に動作しますが、正しく処理したいだけです。

ありがとうございます!

答えて

1

問題は、テストするクラスをインポートするのではなく、実際のコードを「ファイル」に含めることにありました。だから私は

{pattern: 'src/main/**/!(file with expose-loader).ts', include:'false'} 

を作り、グローバルオブジェクト

を露出させるための責任のファイルを除外しました
関連する問題