1

When running my karma unit tests on my angular project, I'm running into errors on lines with $log defined.

I'm using Karma version: 0.10.1 and my config file is:

// Karma configuration
// Generated on Wed Aug 21 2013 14:10:06 GMT-0400 (EDT)

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: [
        '../build/angular/angular.js',
        '../build/angular/angular-mocks.js',
        '../build/angular/angular-resource.js',
        '../build/angular/angular-cookies.js',
        '../src/**/*.js',
        '../dist/tmp/**/*.js',
        '../vendor/angular-bootstrap/*.js',
        '../vendor/angular-ui-utils/modules/route/*.js',
        '../vendor/angular-ui-utils/modules/mask/*.js',
        '../vendor/angular-ui-utils/modules/event/*.js',
        '../vendor/angular-ui-utils/modules/keypress/*.js',
        '../vendor/moment/moment.js',
        '../vendor/Highcharts-3.0.2/highcharts.js',
        '../vendor/Highcharts-3.0.2/modules/exporting.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: 9018,


    // 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
    // - Safari (only Mac)
    // - PhantomJS
    // - IE (only Windows)
    browsers: ['Chrome'],//nothing so we can start it on our own


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

No. OData properties are case sensitive. However there is a codeplex issue open to support case insensitive property names for OData queries in web API here. Vote for it if you think it should be supported.

4

2 回答 2

2

如果您使用的是 angular 的稳定版本(当前为 1.0.8),则没有方法$log.debug(请参阅v1.0.8 的 $log 文档$log.debug仅从 v1.1.2 开始可用,例如从 v1.1.2 的 $log 文档.

最好的选择可能是$log.log().

于 2013-09-03T20:31:24.157 回答
0

Lorcan 对问题的识别是完全正确的,但有更好的解决方案。我只是遇到了这个问题,它的根源在于版本升级的不一致。我在周期中期加入了一个项目。该项目从 Angular 版本 1.0.* 开始。该项目最终升级到 Angular 1.2.3。问题是,虽然主 lib 目录已更新,但用于单元测试的 angular-mock.js 文件却没有。单元测试在模拟文件中的旧版本 angular 上运行。转到http://code.angularjs.org/并选择您正在使用的 Angular 版本。然后将您的 angular-mock.js 替换为适合您的 angular 版本。这解决了 .debug 错误。

于 2014-03-12T22:15:23.357 回答