Denys Wylliam
Denys Wylliam

Reputation: 129

Karma error: Can't find variable: angular

I'm trying for a week run karma in a project. I've follow this tutorial AngularJS Unit Test but when run karma start the console shows this error:

PhantomJS 2.1.1 (Linux 0.0.0) ERROR
  ReferenceError: Can't find variable: angular
  at /home/user/workspace/UnitTest/app/app.js:1

I thought the problem was in my project, so i've created a new one and the error persists.

My karma.conf.js is

module.exports = function(config) {
config.set({
   basePath: '',
  frameworks: ['jasmine'],
files: [
  'app/*.js', 
  'tests/*.js',
  'node_modules/angular/angular.js', 
  'node_modules/angular/angular.min.js',
  'node_modules/angular-mocks/angular-mocks.js'
],

exclude: [
],

preprocessors: {
},
reporters: ['progress'],

// web server port
port: 9876,

colors: true,

logLevel: config.LOG_INFO,

autoWatch: true,

browsers: ['PhantomJS'], 

customLaunchers: {
  Chrome_without_security: {
    base: 'PhantomJS',
    flags: ['--disable-web-security']
  }
},

singleRun: false,

concurrency: Infinity
})
}

and app.js

angular.module('MyApp', [])
  .filter('reverse',[function(){
    return function(string){
    return string.split('').reverse().join('');
   }
}])

I've tried to change the node version too, but it isn't worked.

Upvotes: 1

Views: 7366

Answers (1)

Denys Wylliam
Denys Wylliam

Reputation: 129

The solution was put the angular imports before the app files like this:

files: [
  'node_modules/angular/angular.js', 
  'node_modules/angular/angular.min.js',
  'node_modules/angular-mocks/angular-mocks.js',
  'app/*.js', 
  'tests/*.js'
]

Upvotes: 4

Related Questions