How To Fix Karma Script Error 0
I am running karma test runner to execute tests for angular.js. It worked fine most of the time until following error started to appear randomly:
Script error. (:0)
often in combination with:
TypeError: ‘null’ is not an object (evaluating ‘currentSpec.$injector’)
at app/bower_components/angular-mocks/angular-mocks.js:1966
After doing some research on the web I only found 2 resources which suggested to simply use PhantomJS. In my case this didn’t help.
So I did some tedious work and disabled every test one by one without any success.
Then I started disabling different blocks of my application and it turned out that the problem was caused by some external javascript libraries which I was loading during a run block in the main app.js file. One of them was loading of google analytics:
So as I don’t need those external libraries for my tests the solution was pretty simple for me.
I just moved the run block into a separate file and excluded them in my karma config.
so app.js now looks like this
angular.module('xyModule', []).config(function() {});
and I created a new file externalLibs.js:
which I could then exclude in my karma.conf.js
exclude: [‘app/scripts/config/externalLibs.js’],
Thats all. Hope it will help someone.