1

我正在尝试获取 angular.js 项目的单元测试覆盖率。我正在通过配置使用 Karm 和 Karma-coverage 工具。我根本没有看到报道记者正在运行的任何输出

DEBUG [preprocessor.coverage]: Processing "/home/ <blah>"

预处理器正在运行,我在控制台中看到它。同样,我看到 junit 报告器在运行测试后创建了一个文件:

DEBUG [reporter.junit]: JUnit results written to...

我对代码覆盖率一无所知,在任何地方都找不到文件。这是配置:

module.exports = function(config){
    config.set({
    basePath : '../',
    logLevel: config.LOG_DEBUG,

    reporters: ['progress', 'junit', 'coverage'],

    preprocessors : {
       'app/js/**/*.js': ['coverage']
    },

    files : [
      'app/lib/jquery-1.10.2.min.js',
      'app/lib/angular/angular.js',
      'app/lib/angular/angular-*.js',
      'test/lib/angular/angular-mocks.js',
      'app/js/**/*.js',
      'test/unit/**/*.js'
    ],

    autoWatch : true,

    frameworks: ['jasmine'],

    browsers : ['Chrome'],

    plugins : [
            'karma-junit-reporter',
            'karma-chrome-launcher',
            'karma-firefox-launcher',
            'karma-jasmine',
            'karma-coverage'       
        ],
    coverageReporter : {
           type : 'text',
           file : 'coverage.txt'
    },
    junitReporter: {
        outputFile: 'test-results.xml'
    }
})}

有人有想法么?

4

1 回答 1

0

我通过以下方式解决了这个问题:

删除 node_modules 并重新安装先决条件。由于使用节点安装的 sudo 要求,我遇到了 karma-coverage 插件未安装的问题。通过安装sudo npm install解决了这个问题。

我还从我的业力配置中删除了所有绒毛:

module.exports = function(config){
    config.set({
    basePath : '../',
    logLevel: config.LOG_DEBUG,
    frameworks: ['jasmine'],

    files : [
        'app/lib/jquery-1.10.2.min.js',
        'app/lib/angular/angular.js',
        'app/lib/angular/angular-*.js',
        'test/lib/angular/angular-mocks.js',
        'app/lib/underscore.js',
        'app/lib/**/*.js',
        'app/js/**/*.js',
        'test/unit/**/*.js'
    ],

    browsers : ['PhantomJS'],
    singleRun: true,
    reporters: ['progress', 'coverage'],
    preprocessors : {
       'app/js/**/*.js': ['coverage']
    }
})}
于 2013-11-13T19:55:02.687 回答