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

Angular中基于@storybook/addon-coverage JSON生成HTML覆盖率报告遇阻

解决Angular + Storybook Coverage插件组件覆盖率不显示及HTML报告为空的问题

1. 修正@storybook/addon-coverage的范围配置

检查.storybook/main.ts中的插件配置,确保include规则明确覆盖你的组件文件,避免仅匹配.storybook目录:

addons: [
  {
    name: '@storybook/addon-coverage',
    options: {
      include: ['src/**/*.component.ts', 'src/**/*.ts'], // 明确指向组件及业务文件
      exclude: ['**/*.stories.ts', '.storybook/**/*', 'src/test.ts'], // 排除故事文件和配置文件
    },
  },
],

2. 修复nyc报告生成命令

原命令未指定源文件匹配规则,导致nyc无法关联JSON中的覆盖率数据到实际组件文件。修改命令如下:

npx nyc report --reporter=html --temp-dir=coverage --report-dir=coverage-html --include="src/**/*.ts"
  • --include:指定要生成报告的源文件路径,和插件配置的include保持一致
  • --report-dir:改用新目录避免覆盖原始JSON文件,方便后续排查

3. 验证覆盖率JSON的有效性

打开coverage目录下的JSON文件,确认files字段包含你的组件路径(如src/app/button/button.component.ts)。如果JSON已包含组件路径但nyc仍不识别,添加TypeScript支持参数:

npx nyc report --reporter=html --temp-dir=coverage --report-dir=coverage-html --include="src/**/*.ts" --require=ts-node/register

4. 确保测试命令正确触发覆盖率收集

执行Storybook测试时必须带上--coverage参数触发数据收集:

npm run test-storybook -- --coverage

或者在package.json中配置专用脚本:

"scripts": {
  "test-storybook:coverage": "test-storybook --coverage"
}

待测试完成、JSON文件生成后,再执行nyc报告生成命令。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 21:37:08