如何在获取代码覆盖率时排除规范文件 [Angular]

Rav*_*iw3 5 code-coverage istanbul karma-jasmine angular angular-test

我正在尝试获取我的角度项目的代码覆盖率。我不太熟悉这些工具。我决定使用"istanbul-instrumenter-loader": "^3.0.1". 我尝试从这个问题中寻求帮助:

  1. 角度cli排除文件/目录ng test--code-coverage
  2. 与spec.ts和spec.tsx不匹配但应匹配任何其他.ts和.tsx的正则表达式

以及在同一线程上给出的许多其他解决方案。我的问题是我想排除我为单元测试编写的规范文件。这是我得到的屏幕截图: 截图。请纠正我的错误,并随时询问缺失的信息。

Sha*_*vek 5

要排除代码覆盖率,您不应只需要指定spec文件,例如["src/app/user-card/user-card.component.spec.ts"]

"test": {
          "builder": "@angular-devkit/build-angular:karma",
          "options": {
            "main": "src/test.ts",
            "polyfills": "src/polyfills.ts",
            "tsConfig": "src/tsconfig.spec.json",
            "karmaConfig": "src/karma.conf.js",
            "codeCoverageExclude": ["src/app/user-card/user-card.component.spec.ts"],
            "styles": [
              "src/styles.scss"
            ],
            "scripts": [],
            "assets": [
              "src/favicon.ico",
              "src/assets"
            ]
          }
        },
Run Code Online (Sandbox Code Playgroud)

而是ts该文件夹的整个文件,可用于生成覆盖率报告。(servicecomponent等等)。因此尝试使用**.ts如下所示

        "test": {
          "builder": "@angular-devkit/build-angular:karma",
          "options": {
            "main": "src/test.ts",
            "polyfills": "src/polyfills.ts",
            "tsConfig": "src/tsconfig.spec.json",
            "karmaConfig": "src/karma.conf.js",
            "codeCoverageExclude": ["src/app/user-card/**.ts"],
            "styles": [
              "src/styles.scss"
            ],
            "scripts": [],
            "assets": [
              "src/favicon.ico",
              "src/assets"
            ]
          }
        },
Run Code Online (Sandbox Code Playgroud)

看看这篇文章,其中mock文件被排除在覆盖范围之外