私は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
ますが、インジェクターはこれを見つけられません。テスト ファイルではなく、アプリのみを縮小したいと考えています。どうすればこれを行うことができますか?