单元测试 – Karma不执行任何单元测试

前端之家收集整理的这篇文章主要介绍了单元测试 – Karma不执行任何单元测试前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我似乎在让我的Jasmine单元测试实际执行时遇到问题。我已经通过将logLevel设置为LOG_DEBUG来验证我的所有脚本都已加载。我的单元测试与服务测试@ https://github.com/angular/angular-seed/blob/master/test/unit/servicesSpec.js相同。

此外,我使用了Testacular(在它重命名为Karma之前),我不记得有这个问题。我似乎让Chrome运行,但我必须手动点击“调试”按钮。即使我按下此按钮,我的测试也不会运行。

系统细节:

> Windows 7
>节点v0.10.4
> Chrome 26.0.14
> Karma 0.8.5(安装了3个警告 – 2个精度损失和1个’没有定义内联函数v8 :: Persistent v8 :: Persistent :: New(v8 :: Handle)’)

这是我的模块代码(Scripts / main.js):

angular.module('sb.services',[]).value('version','0.0.1').value('amplify',amplify);
angular.module('sb.directives',[]);
angular.module('sb.filters',[]);
angular.module('sb.controllers',[]).controller('SbController',[
    '$scope','amplify',function ($scope,amplify) {
        $scope.message = 'Hello World! (amplify exists?=' + !!amplify + ')';
    }
]);
angular.module('sb',[
    'sb.services','sb.directives','sb.filters','sb.controllers'
]);

这是我的规范(Test / unit / servicesSpec.js):

'use strict';

describe('my services',function () {
    beforeEach(module('sb.services'));

    describe('version',function () {
        it('should return current version',inject(function(version) {
            expect(version).toEqual('0.0.1');
        }));
    });
});

这是我的karma.conf.js文件

// Karma configuration
// Generated on Mon Apr 15 2013 20:56:23 GMT-0400 (Eastern Daylight Time)


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


// list of files / patterns to load in the browser
files = [
  JASMINE,JASMINE_ADAPTER,'Vendor/angular-1.0.6/angular.js','Vendor/angular-1.0.6/angular-*.js','Vendor/json2/json2.js','Vendor/jquery/jquery-1.8.2.js','Vendor/amplify/amplify.js','Scripts/main.js','Test/unit/*.js'
];


// list of files to exclude
exclude = [

];


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


// web server port
port = 9876;


// cli runner port
runnerPort = 9100;


// enable / disable colors in the output (reporters and logs)
colors = true;


// level of logging
// possible values: LOG_DISABLE || LOG_ERROR || LOG_WARN || LOG_INFO || LOG_DEBUG
logLevel = LOG_WARN;


// enable / disable watching file and executing tests whenever any file changes
autoWatch = false;


// Start these browsers,currently available:
// - Chrome
// - ChromeCanary
// - Firefox
// - Opera
// - Safari (only Mac)
// - PhantomJS
// - IE (only Windows)
browsers = ['Chrome'];

junitReporter = {
    outputFile: 'Test/out/unit.xml',suite: 'unit'
};


// 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;
我的最后一个答案是错误的(将angular.js行下面的JASMINE和JASMINE_ADAPTER行移动)。它解决了这个特殊问题,但却产生了其他问题。相反,我所做的就是只指定angular-mocks文件而不是angular- *,如下所示:
JASMINE,'Vendor/angular-1.0.6/angular-mocks.js','Test/unit/*.js'

猜你在找的Angularjs相关文章