2017-05-16 7 views
0

私は自分のプロジェクトで単体テストをスピードアップする方法を見つけようとしています。私はwebpack 2とカルマを使用しています。webpack 2/karmaでインポートを嘲笑

私は自分のアプリケーションにバンドルしているカスタムnpmモジュールを持っています。これには依存性を持つエクスポートがたくさんあります(プロジェクトでのツリーの揺れを使用します)。私のNPMモジュール「テスト」の実施index.jsについては

は次のようになります。

export Button from "./Button" 
export Unused1 from "./Unused1" 
export Unused2 from "./Unused2" 
...many more imports follow 

私のコンポーネントのテストが

import {Button} from "Test" 

は、私が作成したい「テスト」から「ボタン」を使用します。 webpackによってバンドルされ、カルマ/ファントムに送られる簡単なテストです。テストでは必要なものだけをバンドル/解決する必要があります。たとえば、上の例では "Button"を解決する必要があります。 {ボタン}、私は私のテストファイル内の「テスト/ボタン」からインポートボタン:私は https://github.com/plasticine/inject-loaderhttps://github.com/speedskater/babel-plugin-rewire

を使用して「テスト」モック試みた

は基本的に、私が「テスト」を注入しようとしました。

両方とも、まだすべてのエクスポートを含む "Test"のindex.jsをバンドルしているようです。

ヒント?ありがとう!

答えて

0

なぜrequire.contextを使用しませんか?

// webpack.testfiles.js: 

var context = require.context('./js', true, /spec\.(js|jsx|ts|tsx)$/); 
context.keys().forEach(context); 

その後、カルマの設定にして、そのファイルを渡す:

... 
     files: [ 
      'webpack.files.js', 
     ], 
... 

はもっとここで読む:Webpack Dependency Management