karma-coverage:TypeError:无法读取未定义的属性“split”

时间:2017-01-17 06:41:09

标签: angular karma-coverage

我正在尝试用业力报道来支持lcov记者。我修改了我的业力配置:

 coverageReporter: {
       dir: 'reports/',
       reporters: [
          { type: 'in-memory' },
          { type: 'lcov', subdir: 'report-lcov' },
       ]

    },

我一直收到错误:

ERROR [coverage]: TypeError: Cannot read property 'split' of undefined
    at HtmlReport.writeDetailPage ({path}\node_modules\istanbul\lib\report\html.js:413:33)

我收到了所需的报告,但是这个错误导致我的构建失败。 有没有办法解决这个问题?

1 个答案:

答案 0 :(得分:0)

我能够通过使用其他包来解决此问题。业力重新映射-伊斯坦布尔。

Karma.conf.js的变化

remapIstanbulReporter: {
      remapOptions: {}, //additional remap options 
      reports: {
        'text-summary': null, // to display summary results on console
        json: 'coverage/coverage.json',
        lcovonly: 'coverage/lcov.info',
        html: 'coverage/html/',
      }
    },
    reporters: [  'mocha', 'coverage', 'karma-remap-istanbul'],

webpack测试配置的变化。我添加了加载程序sourcemap-istanbul-instrumenter-loader,而不是karma-remap-coverage支持的istanbul-intrumenter-loader

{
          enforce: 'post',
          test: /\.(js|ts)$/,
          loader: 'sourcemap-istanbul-instrumenter-loader',
          include: helpers.root('src'),
          exclude: [
            /\.(e2e|spec)\.ts$/,
            /node_modules/
          ]
        }

我能够顺利生成lcov报告。

希望这可以帮助其他人面对同样的问题。