1

私はAngularJSアプリケーションに取り組んでいます。ng-upgrade の準備として Webpack 2 に移行する既存の大規模なコードベースがあります。ただし、縮小されたアプリに対して Jasmine 単体テストを実行する方法がわかりません。

このプリブート リポジトリに基づいてアプリケーションをモデル化しました。

これを使用してアプリを醜くしwebpack.config.jsます:

config.plugins.push(
    new webpack.optimize.UglifyJsPlugin({sourceMap: false})
);

karma.conf.js基本的には次のようになります。

module.exports = function karmaConfig (config) {
  config.set({
    frameworks: ['jasmine'],
    files: ['src/tests.webpack.js'],
    preprocessors: {
       'src/tests.webpack.js': ['webpack', 'sourcemap']
    },
    webpack: require('./webpack.config'),
    ...
  });
};

src/tests.webpack.js次のようになります。

import 'angular';
import 'angular-mocks/angular-mocks';

const context = require.context('..', true, /\.spec.js$/);
context.keys().forEach(context);

.spec.jsファイルはimport、実際の Angular アプリケーションをロードするために使用され、次に次のようなインジェクションを行います。

beforeEach(inject(function($rootScope){
    ...
}));

ここに問題があります。単体テストは縮小されています。$rootScopeに縮小されeますが、インジェクターはこれを見つけられません。テスト ファイルではなく、アプリのみを縮小したいと考えています。どうすればこれを行うことができますか?

4

1 に答える 1