我想在karma.conf.js中使用多个覆盖报告类型

时间:2017-05-05 11:31:25

标签: javascript karma-runner code-coverage istanbul

我正在使用Karma编写JS单元测试用例和伊斯坦布尔来获取覆盖率报告。 我的karma.conf.js文件如下 -

// karma.conf.js
module.exports = function(config) {
  config.set({
    files: [
      'test/**/*.js'
    ],

    // coverage reporter generates the coverage
    reporters: ['progress', 'coverage'],

    preprocessors: {
      // source files, that you wanna generate coverage for
      // do not include tests or libraries
      // (these files will be instrumented by Istanbul)
      'test/**/*.js': ['coverage']
    },

    // optionally, configure the reporter
    coverageReporter: {
      type : 'html',
      dir : 'coverage/'
    }
  });
};

这里面的coverageReporter我想使用'html'和'lcov'类型。要做到这一点,我改变它如下 -

coverageReporter:{           输入:'html','lcov',           导师:'覆盖/'         }

然后我执行了karma start karma.conf.js但得到了以下异常 -

C:\abc\npm-1.4.9>karma start karma.conf.js
05 05 2017 16:57:00.369:ERROR [config]: Invalid config file!
  C:\abc\npm-1.4.9\karma.conf.js:45
      type : 'html','lcov',
                          ^
SyntaxError: Unexpected token ,
    at createScript (vm.js:53:10)
    at Object.runInThisContext (vm.js:95:10)
    at Module._compile (module.js:543:28)
    at Object.Module._extensions..js (module.js:580:10)
    at Module.load (module.js:488:32)
    at tryModuleLoad (module.js:447:12)
    at Function.Module._load (module.js:439:3)
    at Module.require (module.js:498:17)
    at require (internal/module.js:20:19)

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

您必须为coverageReporter属性使用具有此结构的配置:

coverageReporter: {
  // specify a common output directory
  dir: 'coverage/',
  reporters: [
    // reporters not supporting the `file` property
    { type: 'html', subdir: '.' },
    { type: 'lcov', subdir: '.' },

  ]
}

这是在karma-coverage的readme中描述的。