Search code examples
karma-runnerwebstorm

I get an error --- Error: [$injector:nomod] http://errors.angularjs.org/1.3.15/$injector/nomod?p0=decisionTree when I run karma.cong.js in Webstorm


Here is my karma.conf.js file

module.exports = function(config) {

  var configuration = {

  basePath : '',

  autoWatch : false,

  frameworks: ['jasmine'],

  files: [
    'bower_components/angular/angular.min.js',
    'bower_components/angular-mocks/angular-mocks.js',
    'bower_components/angular-resource/angular-resource.min.js',
    'bower_components/angular-animate/angular-animate.min.js',
    'bower_components/angular-bootstrap/ui-bootstrap-tpls.min.js',
    'bower_components/angular-cookies/angular-cookies.min.js',
    'bower_components/angular-sanitize/angular-sanitize.min.js',
    'bower_components/angular-touch/angular-touch.min.js',
    'bower_components/angular-ui-router/release/angular-ui-router.min.js',
    'src/app/**/*.js'
  ],

  ngHtml2JsPreprocessor: {
    stripPrefix: 'src/',
    moduleName: 'gulpAngular'
  },

  browsers : ['PhantomJS'],

  plugins : [
    'karma-phantomjs-launcher',
    'karma-jasmine',
    'karma-ng-html2js-preprocessor'
  ],

  preprocessors: {
    'src/**/*.html': ['ng-html2js']
  }
  };

  config.set(configuration);
};

I have searched such problems on stackover for a whole afternoon today, but I still can't get any solution for that. I wonder anyone who can solve this problem.


Solution

  • Seems your specs are loaded before application files, and your angular module can't be resolved. Please try changing 'files' as follows:

    files: [
                'bower_components/jquery/dist/jquery.js',
                'bower_components/angular/angular.js',
                'bower_components/angular-animate/angular-animate.js',
                'bower_components/angular-cookies/angular-cookies.js',
                'bower_components/angular-touch/angular-touch.js',
                'bower_components/angular-sanitize/angular-sanitize.js',
                'bower_components/angular-resource/angular-resource.js',
                'bower_components/angular-ui-router/release/angular-ui-router.js',
                'bower_components/angular-bootstrap/ui-bootstrap-tpls.js',
                'bower_components/angular-mocks/angular-mocks.js',
                'src/app/index.js',
                'src/app/main/main.controller.js',
                'src/app/components/navbar/navbar.controller.js',
                'src/**/*.html',
                'src/**/*.spec.js',
                'src/**/*.mock.js'
    
            ],
    

    karma tests run fine for me after changing the config this way