2014-02-16 61 views
4

我試圖設置WebStorm來開發AngularJS。我遵循instructions from JetBrains,我試圖從that tutorial運行測試。Webstorm karma/jasmine angularjs測試 - 參考錯誤模塊未定義

describe('PhoneCat controllers', function() { 
    beforeEach(module('phonecatApp')); 

    describe('PhoneListCtrl', function(){ 

    it('should create "phones" model with 3 phones', inject(function($controller) { 
     var scope = {}, 
      ctrl = $controller('PhoneListCtrl', { $scope: scope }); 

     expect(scope.phones.length).toBe(3); 
    })); 
    }); 
}); 

我收到以下錯誤

"C:\Program Files (x86)\nodejs\node.exe" "C:\Program Files (x86)\JetBrains\WebStorm 7.0.3\plugins\js-karma\js_reporter\karma-intellij\lib\intellijRunner.js" --karmaPackageDir=C:\Users\L\node_modules\karma --serverPort=9876 --urlRoot=/ 
Testing started at 21:02 ... 

    ReferenceError: module is not defined 
     at null.<anonymous> (C:/Users/L/WebstormProjects/AngularJS/test/unit/ControllerTests.js:4:16) 
     at C:/Users/L/WebstormProjects/AngularJS/test/unit/ControllerTests.js:3:1 


Process finished with exit code 0 

我的目錄佈局

  • 測試/單位/ ControllerTest.js

  • 測試/ karma.conf。 js

karma.conf.js下面

// Karma configuration 
// Generated on Sun Feb 16 2014 20:49:06 GMT+0000 (GMT 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: [ 
     {pattern: '*.js', included: true}, 
     {pattern: 'unit/*.js', included: true} 
    ], 


    // 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: true, 


    // 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 
    }); 
}; 

回答

2

在karma.conf.js應更改爲:

basePath: './', 

$files: [ 
     {pattern: './*.js', included: true}, 
     {pattern: './unit/*.js', included: true} 
    ],