SuperAPI AI Directory

coverage-reporting

Testing & quality

View repository

Updated 10-16 09:30

About this skill

Coverage Reporting

Applicable Scenarios

  • Coverage target setting
  • CI coverage collection
  • PR coverage comments
  • Coverage trend tracking
  • Coverage gates

Core Principles

1. 覆盖率是基线不是目标
   80% 覆盖率 ≠ 80% 质量

2. 关注增量覆盖率
   新代码 ≥ 80%,比总覆盖率更有意义
  1. Don't chase 100% getters / setters / configuration don't need tests

  2. Look at it by layer Business logic ≥ 90% Controller ≥ 60% Utility functions ≥ 80%

  3. Trends matter more than absolute values Coverage must not decrease


## 工具

| 工具 | 语言 | 用途 |
|---|---|---|
| **Codecov** | 多语言 | SaaS 报告 + PR 评论 |
| **Coveralls** | 多语言 | SaaS 报告 |
| **SonarQube** | 多语言 | 自建 + 质量门禁 |
| **Istanbul / c8** | JS/TS | 收集器 |
| **JaCoCo** | Java | 收集器 |
| **coverage.py** | Python | 收集器 |
| **go test -cover** | Go | 内置 |

## 覆盖率目标

| 层 | 目标 | 说明 |
|---|---|---|
| Domain / Service | ≥ 90% | 核心业务 |
| Controller | ≥ 60% | 集成测试覆盖 |
| Utils | ≥ 80% | 工具函数 |
| 总体 | ≥ 70% | 基线 |
| 增量(新代码) | ≥ 80% | PR 门禁 |

## CI 集成

```yaml
# Vitest 覆盖率
- run: pnpm test:coverage
- uses: codecov/codecov-action@v4
  with:
    files: coverage/lcov.info
    fail_ci_if_error: true

# 门禁:覆盖率不能下降
- name: Coverage check
  run: |
    COVERAGE=$(cat coverage/coverage-summary.json | jq '.total.lines.pct')
    if (( $(echo "$COVERAGE < 70" | bc -l) )); then
      echo "Coverage below threshold: $COVERAGE%"
      exit 1
    fi

Supporting Templates

  • templates/coverage-config-template.md — coverage configuration + targets + CI

Quality Self-Check

□ 覆盖率目标设定
□ CI 自动收集
□ PR 评论(增量)
□ 门禁(不能下降)
□ 趋势跟踪
□ 分层目标
□ 不追求 100%

Common Pitfalls

  1. Chasing 100%——testing getters is a waste of time
  2. Only looking at total coverage——new code at 0% can still pass
  3. Not setting gates——coverage keeps declining
  4. Coverage = quality——covered doesn't mean tested correctly
  5. Not looking at trends——single-point data is meaningless

Collaboration with Other Skills

上游:
  unit/integration/e2e → 测试代码产生覆盖率

下游:
  ci-test-integration → CI 收集
  qa-engineer quality-gate → 门禁条件