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

Fra*_*uer 13 code-coverage typescript karma-runner 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
Run Code Online (Sandbox Code Playgroud)

我的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
  });
};
Run Code Online (Sandbox Code Playgroud)

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

Wes*_*y T 3

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