【问题标题】:Karma-coverage checks test coverage in JS files instead of TS in Angular 2Karma-coverage 检查 JS 文件中的测试覆盖率,而不是 Angular 2 中的 TS
【发布时间】:2017-03-16 21:33:11
【问题描述】:

我通过伊斯坦布尔检查 TypeScript 文件中的测试覆盖率。而且我需要通过 karma-coverage 设置测试阈值。伊斯坦布尔的报告与 karma-coverage 报告不匹配(我使用 Angular-cli),因为 karma-coverage 在 JavaScript 文件而不是 TypeScript 中检查测试覆盖率。我使用了其他插件,例如 karma-threshold-reporter、istanbul-threshold-checker,但结果相同。我该如何解决?

report generate for typeScript files

report generate for JS files

module.exports = function (config) {
  config.set({
    basePath: '',
    frameworks: ['jasmine', 'angular-cli'],
    plugins: [
      require('karma-jasmine'),
      require('karma-chrome-launcher'),
      require('karma-remap-istanbul'),
      require('karma-coverage'),
      require('angular-cli/plugins/karma')
    ],
    files: [
      { pattern: './src/test.ts', watched: false }
    ],
    preprocessors: {
      './src/test.ts': ['angular-cli']
    },
    remapIstanbulReporter: {
      reports: {
        html: 'coverage',
        lcovonly: './coverage/coverage.lcov'
      }
    },
    coverageReporter: {
      dir: 'coverage/',
      reporters: [
        {type: 'text-summary'},
        {type: 'html'}
      ],
      check: {
        global: {
          statements: 70,
          branches: 70,
          functions: 70,
          lines: 50
        }
      }
    },

    angularCli: {
      config: './angular-cli.json',
      environment: 'dev'
    },
    reporters: ['progress', 'karma-remap-istanbul', 'coverage'],
    port: 9876,
    colors: true,
    logLevel: config.LOG_INFO,
    autoWatch: true,
    browsers: ['Chrome'],
    singleRun: false
  });
};

【问题讨论】:

    标签: javascript angular typescript angular-cli


    【解决方案1】:
    plugin: ['karma-remap-istanbul', 'karma-istanbul-threshold'],
      coverageReporter: {
            type: 'in-memory',
        },
    
        remapCoverageReporter: {
            'text-summary': null,
            json: './coverage/coverage-final.json',
            html: './coverage/html-ts'
        },
    
        istanbulThresholdReporter: {
            src: './coverage/coverage-final.json',
            reporters: ['text'], 
    
            thresholds: {
                global: {
                    statements: 90,
                    branches: 90,
                    lines: 90,
                    functions: 90,
                }
            },
        },
    

    这个配置对我有用。

    【讨论】:

      猜你喜欢
      • 2014-06-06
      • 2015-12-19
      • 2019-01-18
      • 2016-04-02
      • 2017-11-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-16
      相关资源
      最近更新 更多