While attempting to execute my jasmine test, which is assessing my angular customer directive "book directive" utilizing the test-runner karma, I am encountering a series of output errors: (I'm receiving various TypeErrors from each script file, unable to even locate my test and identify a failing test)
Error Output from Karma
------ Initiated test discovery ------
Error: TypeError: undefined is not an object (evaluating 'angular.module')
in file:///c:/users/ray/documents/visual%20studio%202013/projects/requirejsdemo/requirejsdemo/scripts/angular-route.js (line 24)
While Running:c:\users\ray\documents\visual studio 2013\projects\requirejsdemo\requirejsdemo\scripts\angular-route.js
Error: TypeError: undefined is not an object (evaluating 'angular.$$minErr')
in file:///c:/users/ray/documents/visual%20studio%202013/projects/requirejsdemo/requirejsdemo/scripts/angular-sanitize.js (line 8)
While Running:c:\users\ray\documents\visual studio 2013\projects\requirejsdemo\requirejsdemo\scripts\angular-sanitize.js
Error: ReferenceError: Can't find variable: define
at global code in file:///c:/users/ray/documents/visual%20studio%202013/projects/requirejsdemo/requirejsdemo/tests/newfeaturetests/directivetest.js (line 3)
While Running:c:\users\ray\documents\visual studio 2013\projects\requirejsdemo\requirejsdemo\tests\newfeaturetests\directivetest.js
Error: TypeError: Attempted to assign to readonly property.
in file:///c:/users/ray/documents/visual%20studio%202013/projects/requirejsdemo/requirejsdemo/scripts/angular-mocks.js (line 17)
While Running:c:\users\ray\documents\visual studio 2013\projects\requirejsdemo\requirejsdemo\scripts\angular-mocks.js
[Karma] [Warning] [Discover] Could not get settings for c:\users\ray\documents\visual studio 2013\projects\requirejsdemo\requirejsdemo\scripts\angular-mocks.js
...
========== Test Discovery Completed: 0 tests found (0:00:17.4009953) ==========
karma.conf File Configuration
module.exports = function (config) {
config.set({
// base path used to resolve all patterns (files, exclude)
basePath: '../',
// frameworks utilized
// available frameworks: https://npmjs.org/browse/keyword/karma-adapter
frameworks: ['jasmine', 'requirejs'],
// files / patterns to load in browser
files: [
"Scripts/angular.js",
{ pattern: "Scripts/require.js", included: false },
{ pattern: "Scripts/jasmine.js", included: false },
...
],
// list of files to exclude
exclude: [
"Js/main.js"
],
...
})
}
Jasmine Testing Script
'use strict'
define(['angular', 'jquery',], function (angular) {
describe('bookDirective', function () {
var el;
beforeEach(module('testModule'));
beforeEach(module('Js/NewFeature/Book.html'));
beforeEach(inject(function ($compile, $rootScope) {
scope = _$rootScope_;
scope.color = "red";
scope.title = "ghost";
el = angular.element("<book title='Ghost' color='red'></book>");
$compile(el)(scope);
scope.$digest();
}));
it('background colour of book should be red', function () {
expect(el.css('background-color').toEqual('red'));
});
});
});
How can I successfully run my tests?