如何将karma和jasmine包含在与webpack一起提供的AngularJs项目中

时间:2018-04-02 14:05:45

标签: angularjs unit-testing jasmine karma-jasmine karma-webpack

我花了一整天时间试图为我的项目设置业力。我浏览了所有教程和StackOverflow,但无法将其集成到我的项目中。

我的项目是使用网络包提供的。我想问题是我无法获得对我的根应用程序模块的引用。

请帮助我。

我尝试使用其名称导入模块,导入整个文件(js)等但没有任何帮助。

PS:这个项目有大量的服务,组件,指令等。 我们用js和玉。这是我们第一次将单元测试集成到一个新功能中。

编辑

karma.config.js

var webpackConfig = require('./webpack.config.js');
webpackConfig.entry = void 0;

const commonsChunkPluginIndex = webpackConfig.plugins.findIndex(plugin => plugin.chunkNames);
webpackConfig.plugins.splice(commonsChunkPluginIndex, 1);

module.exports = function(config) {
  config.set({
    basePath: '',
    frameworks: ['jasmine'],

    reporters: ['progress'],
    port: 9876,
    colors: false,
    logLevel: config.LOG_INFO,
    autoWatch: true,
    browsers: ['Chrome'],
    singleRun: false,
    autoWatchBatchDelay: 300,

    files: [
      './node_modules/angular/angular.js',
      './node_modules/angular-mocks/angular-mocks.js',
      "./client/app/app.js", ,=== root module
      "./client/app/services/chart-type/cohortSpec.js",  <==  contains test case
    ],

    preprocessors: {
      "./webpack.config.js": ['babel'],
      './client/app/app.js': ['webpack'],
      "./client/app/services/chart-type/cohortSpec.js": ['babel']
    },
    babelPreprocessor: {
      options: {
        "presets": ["es2015"],
        "plugins": ["transform-es2015-modules-umd",  "transform-runtime"]
      }
    },

    webpack: webpackConfig,

    webpackMiddleware: {
      noInfo: true,
      stats: 'errors-only',
    }
  });
}
  

即使我在应用程序中导入了所有js文件,我也无法获得对 app 模块的引用。请注意,webpack提供dist /中的文件,该文件未导入karma.config

通过上面的配置,我能够获得对该应用的引用。

配置有任何改进吗?

0 个答案:

没有答案