Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

module not defined in karma

I want to run mySpec.js with karma in WebStorm 7. When I run karma, karma server starts on my browser but in WebStorm I am facing this error:

This is the error I'm getting

ReferenceError: module is not defined at null. (C:/Users/Babar/Desktop/angular/test/basic/mySpec.js:2:16) at C:/Users/Babar/Desktop/angular/test/basic/mySpec.js:1:1 Process finished with exit code 0

here is my configuration file:

// Karma configuration
// Generated on Thu Nov 21 2013 03:05:08 GMT-0800 (Pacific Standard Time)

module.exports = function
(config) {
  config.set({

    // base path, that will be used to resolve files and exclude
    basePath: '',


    // frameworks to use
    frameworks: ['jasmine'],


    // list of files / patterns to load in the browser
    files: [
      'test/basic/mySpec.js'
    ],


    // list of files to exclude
    exclude: [

    ],


    // test results reporter to use
    // possible values: 'dots', 'progress', 'junit', 'growl', 'coverage'
    reporters: ['progress'],


    // web server port
    port: 9876,


    // enable / disable colors in the output (reporters and logs)
    colors: true,


    // level of logging
    // possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG
    logLevel: config.LOG_INFO,


    // enable / disable watching file and executing tests whenever any file changes
    autoWatch: false,


    // Start these browsers, currently available:
    // - Chrome
    // - ChromeCanary
    // - Firefox
    // - Opera (has to be installed with `npm install karma-opera-launcher`)
    // - Safari (only Mac; has to be installed with `npm install karma-safari-launcher`)
    // - PhantomJS
    // - IE (only Windows; has to be installed with `npm install karma-ie-launcher`)
    browsers: ['Chrome'],


    // If browser does not capture in given timeout [ms], kill it
    captureTimeout: 60000,


    // Continuous Integration mode
    // if true, it capture browsers, run tests and exit
    singleRun: false
  });
};

and here is my mySpec.js:

describe('filter', function(){
    beforeEach(module('Babar', []));

    describe("reverse", function(){
        it("should reverse a string",inject(function(reverseFilter){
            expect(reverseFilter("ABCD")).toEqual("DCBA");
        }))
    })
})

Please let me know what should I do ?

like image 610
user3012577 Avatar asked Nov 20 '13 10:11

user3012577


1 Answers

Karma needs to pull in all your the files that you are working with. It uses the files collection in its config to configure which files to pull in:

So this needs to be expanded:

// list of files / patterns to load in the browser
files: [
  'test/basic/mySpec.js'
],

To something like this:

// list of files / patterns to load in the browser
files: [
  'src/lib/angular/angular.js',
  'src/lib/angular-mocks/angular-mocks.js',
  'src/js/**/*.js',
  'test/**/*.js'
],

The error is indicating that the file that defines the module Babar has not been found in one of the files configured in the files list.

like image 168
Davin Tryon Avatar answered Nov 12 '22 13:11

Davin Tryon