Карма, Стамбул - отчет о покрытии кода Неизвестно% (0/0) - PullRequest
4 голосов
/ 05 мая 2020
• 1000 1007 *

но все равно получаю пустое лето.

мой karma.conf. js

module.exports = function (config) {
  config.set({
    basePath: '',
    frameworks: ['jasmine', '@angular-devkit/build-angular'],
    plugins: [
      require('karma-jasmine'),
      require('karma-chrome-launcher'),
      require('karma-jasmine-html-reporter'),
      require('karma-coverage-istanbul-reporter'),
      require('@angular-devkit/build-angular/plugins/karma')
    ],
    client: {
      clearContext: false // leave Jasmine Spec Runner output visible in browser
    },
    coverageIstanbulReporter: {
      dir: require('path').join(__dirname, './coverage/singleWindow'),
      reports: ['html', 'lcovonly', 'text-summary'],
      fixWebpackSourcePaths: true,
      thresholds: {
        statements: 80,
        lines: 80,
        branches: 80,
        functions: 80
      }
       },
    reporters: ['progress', 'kjhtml'],
    port: 9876,
    colors: true,
    logLevel: config.LOG_INFO,
    autoWatch: true,
    browsers: ['Chrome'],
    singleRun: false,
    restartOnFileChange: true,
});
}

Ответы [ 2 ]

1 голос
/ 03 июня 2020

У меня была такая же проблема с Angular 7 при запуске тестов с использованием ng test.

Как оказалось, Angular CLI по умолчанию отключил покрытие кода. Вы должны начать свои тесты, используя ng test --code-coverage, чтобы он работал.

Вы можете сделать его всегда включенным, добавив "codeCoverage": true в задачу test вашего angular.json файла:

{
  "$schema": "./node_modules/@angular/cli/lib/config/schema.json",
  "version": 1,
  "newProjectRoot": "projects",
  "projects": {
    "name-of-your-app": {
      "root": "",
      "sourceRoot": "src",
      "projectType": "application",
      "architect": {
        "build": {
          /* ... */
        },
        "test": {
          "builder": "@angular-devkit/build-angular:karma",
          "options": {
            "main": "src/test.ts",
            "polyfills": "src/polyfills.ts",
            "tsConfig": "src/tsconfig.spec.json",
            "karmaConfig": "./karma.conf.js",
            "scripts": [],
            "assets": [
              "src/favicon.ico",
              "src/assets"
            ],
            "codeCoverage": true
          }
        }
      }
    }
  }
}

Для получения дополнительной информации: https://angular.io/guide/testing#enable -code-охват-отчеты

0 голосов
/ 20 июля 2020

Если покрытие равно Unknown%, это означает, что вы, вероятно, включили правильно.

Убедитесь, что для свойства "sourceRoot" в angular.json установлено значение root папка для исходных файлов проекта.

ng cli использует файлы из "sourceRoot" для вычисления покрытия .

Похоже, что он ничего не делает иначе с sourceRoot для тестов, поэтому тесты выполняются и проходят, но покрытие не работает.

...