用途:在代码仓库中搭建测试覆盖率报告,并配置自动上传到 Codacy。该技能先检测现状,再补齐缺失环节。
前置条件:需要 CODACY_PROJECT_TOKEN 或 CODACY_API_TOKEN 才能上传覆盖率;仓库需已添加到 Codacy。
工作流程:1) 检测测试环境,扫描语言、测试框架(如 Jest、Vitest、pytest、JUnit、JaCoCo、RSpec、Coverlet、PHPUnit 等)、已有覆盖率配置与报告;2) 检测 CI/CD 系统(GitHub Actions、GitLab CI、CircleCI、Travis CI、Bitbucket Pipelines、Jenkins、Azure DevOps);3) 识别缺口:无测试、有测试但无覆盖率生成、有覆盖率但未上传、上传失败;4) 添加覆盖率生成配置;5) 添加上传步骤;6) 验证。
上传方式:使用仓库令牌(CODACY_PROJECT_TOKEN)或账号令牌(CODACY_API_TOKEN、CODACY_ORGANIZATION_PROVIDER、CODACY_USERNAME、CODACY_PROJECT_NAME)。标准命令为 bash <(curl -Ls https://coverage.codacy.com/get.sh) report -r <coverage-report-file>;Go 需加 --force-coverage-parser go;多报告可用多个 -r 或 --partial 配合 final。GitHub Actions 也可用 codacy/codacy-coverage-reporter-action@v1。
限制与注意:覆盖率需在每次推送时上传,且需覆盖所有分支而非仅主分支,PR 分析还需目标分支共同祖先提交的覆盖率;报告中的文件路径必须相对于仓库根目录;多语言需分别指定语言或使用部分上传。常见问题包括 Commit Not Found、Pending、Final Report Not Sent、Branch Not Enabled 等,均有对应修复方式。