You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从Jest覆盖率报告中排除Angular HTML模板文件

解决Angular Jest覆盖率报告包含独立HTML模板文件的问题

针对Angular 12 + Jest 26.0.24场景下,覆盖率报告纳入独立HTML模板文件的问题,直接通过Jest的coveragePathIgnorePatterns配置项即可解决,具体方案如下:

配置修改步骤

在你的jest.config.js中新增coveragePathIgnorePatterns配置,指定需要排除的文件类型:

module.exports = {
    displayName: 'f-assets',
    preset: '../../jest.preset.js',
    setupFilesAfterEnv: ['<rootDir>/src/test-setup.ts'],
    globals: {
        'ts-jest': {
            tsconfig: '<rootDir>/tsconfig.spec.json',
            stringifyContentPathRegex: '\\.(html|svg)$',
            isolatedModules: true,
        },
    },
    coverageDirectory: '../../coverage/libs/f-assets',
    // 添加该行,排除html/svg文件的覆盖率统计
    coveragePathIgnorePatterns: ['\\.(html|svg)$'],
    transform: {
        '^.+\\.(ts|js|html)$': 'jest-preset-angular',
    },
    snapshotSerializers: [
        'jest-preset-angular/build/serializers/no-ng-attributes',
        'jest-preset-angular/build/serializers/ng-snapshot',
        'jest-preset-angular/build/serializers/html-comment',
    ],
    reporters: [
      'default'
    ],
    transformIgnorePatterns: [
        "node_modules/(?!ngx-json-viewer|lodash-es)"
    ]
};

配置说明

  • coveragePathIgnorePatterns是Jest原生配置,用于指定不参与覆盖率统计的文件路径正则匹配规则。
  • 这里的\\.(html|svg)$会匹配所有以.html或.svg结尾的文件,直接排除在覆盖率报告之外。
  • 如果需要更精确的范围(比如仅排除src/app目录下的模板),可以调整正则为src/app/.+\\.(html|svg)$。

额外说明

无需修改ts-jest的stringifyContentPathRegex配置,该配置仅用于将HTML/SVG文件转换为字符串供测试使用,与覆盖率统计的排除逻辑互不冲突。

内容的提问来源于stack exchange,提问作者mindparse

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 03:32:19