在Typescript项目上运行karma-coverage时出现意外的令牌

时间:2017-07-07 06:06:07

标签: typescript karma-runner code-coverage karma-coverage

我有一个基本的Angular / Typescript项目,有12个基本的单元测试,运行得很好。现在我想获得这些测试的报道。我尝试了各种方法,但没有一种方法有效,所以我决定从业力覆盖开始并在这里寻求帮助。 : - )

目前,当我运行业力时,我收到每个源文件的错误消息,如下所示:

Failed to parse file: C:/Users/FRBA/Documents/MyProject/src/app/nav/new-panel/new-panel.component.ts
07 07 2017 07:54:35.832:ERROR [preprocessor.coverage]: Line 1: Unexpected token
  at C:/Users/FRBA/Documents/MyProject/src/app/nav/new-panel/new-panel.component.ts

我的karma.conf.js看起来像这样:

var path = require('path');
module.exports = function (config) {
  config.set({
    files: [
      'src/app/**/*.ts',
      'test/app/**/*.ts'
    ],
    basePath: '',
    frameworks: ['jasmine', '@angular/cli'],
    plugins: [
      require('karma-jasmine'),
      require('karma-chrome-launcher'),
      require('karma-ie-launcher'),
      require('karma-jasmine-html-reporter'),
      require('karma-coverage'),
      require('@angular/cli/plugins/karma')
    ],
    client: {
      clearContext: false
    },
    angularCli: {
      environment: 'dev'
    },
    reporters: ['progress', 'kjhtml', 'coverage'],
    preprocessors: {
      'src/app/**/*.ts': ['coverage']
    },
    coverageReporter: {
      type : 'html',
      dir : 'coverage/'
    },
    port: 9876,
    colors: true,
    logLevel: config.LOG_INFO,
    autoWatch: true,
    browsers: ['Chrome', 'IE'],
    singleRun: false
  });
};

就像我说的那样,我已经尝试了各种方法 - 业力报道,业力覆盖 - 伊斯坦布尔 - 记者,业力 - 打字稿等等,我总是遇到各种问题(业力生成空报告,业力停止到在" 10%构建模块"行之后执行,依此类推),所以我似乎在做一些根本错误的事情。任何额外的指针或教程,以解释这个业力(和Typescript)新手将不胜感激。非常感谢!

1 个答案:

答案 0 :(得分:0)

configuration下的karma-typescript文档中所述,您需要添加karma-typescript作为预处理器。如果要测试TypeScript文件(我假设您是从.ts扩展名判断),则需要将它们转换为JavaScript,以便下游处理器能够解析它们。意外的令牌错误可能引用了仅在TypeScript中有效的令牌。