‹ 首页

coverage-report

@nikiforovall · 收录于 昨天 · 上游提交 3 周前

Generate a .NET code coverage report scoped to files changed in the current branch. Runs tests with coverage collection and produces filtered HTML reports.

适合你,如果你需要在 .NET 项目中追踪代码变更的测试覆盖情况

/ 通过 npx 安装 校验哈希
npx oh-my-skill add nikiforovall/claude-code-rules/coverage-report
/ 通过 bash 安装
curl -fsSL https://oh-my-skill.com/install.sh | bash -s -- nikiforovall/claude-code-rules/coverage-report
/ 已经装过?验证本机副本,不用重装
npx oh-my-skill verify nikiforovall/claude-code-rules/coverage-report
安装目标可用 --agent / --scope 或 --to 明确指定;省略时只会在唯一已存在的 agent 目录上自动选择,零命中或多命中会停止并提示。content_hash 缺失或不一致均拒装。
133GitHub stars
~555上下文体积 · 单文件
索引托管

怎么用

商店整理自技能原文 · 版本 642e21e · 表述以原文为准
它做什么

安装后,Claude 会分析当前 Git 分支与基分支(如 main)相比有变化的 .cs 源文件,然后运行相关测试并收集代码覆盖率,最终生成一个只针对这些变更文件的 HTML 覆盖率报告,并在终端显示摘要。

什么时候触发

当你要求为当前分支的代码变更生成覆盖率报告时触发。例如,你说“生成覆盖率报告”或“对比主分支看看我改的代码测试覆盖率”。

装好后可以这样说
Claude 会自动检测变更并生成报告
只针对你修改过的文件生成报告
技能原文 SKILL.md作者撰写 · Apache-2.0 · 642e21e

Code Coverage Report

Generate a code coverage report scoped to source files changed in the current branch compared to a base branch.

Workflow
1. Determine base branch

Detect the base branch to diff against. Use the MR/PR target branch if known, otherwise default to main or master (whichever exists). Ask the user if ambiguous.

git merge-base --fork-point main HEAD || git merge-base --fork-point master HEAD
2. Detect changed source files
git diff <base-branch> --name-only -- '*.cs'

Filter out test files (paths containing Test, Tests, .Tests, .Test). If no source files changed, stop and inform the user.

3. Identify test project(s)

Determine which test project(s) to run. Strategies (in order):

  1. User-specified: If the user names a test project, use it
  2. Convention-based: Look for test projects whose name matches the changed project (e.g., MyProject -> MyProject.Tests)
  3. Solution-wide: Run all tests in the solution if scope is unclear
  4. Ask: If ambiguous, ask the user which test project(s) to run
4. Clean previous results
rm -rf TestResults/
5. Run tests with coverage
dotnet test <test-project-or-solution> \
  --collect:"XPlat Code Coverage" \
  --results-directory ./TestResults/
6. Build file filters

From the changed file list (step 2), extract basenames and build a filter string:

+*FileName1.cs;+*FileName2.cs;+*FileName3.cs
7. Generate report
dotnet reportgenerator \
  -reports:"TestResults/**/coverage.cobertura.xml" \
  -targetdir:"TestResults/CoverageReport" \
  -reporttypes:"Html;TextSummary" \
  -filefilters:"<filters>"
8. Display results
  1. Print TestResults/CoverageReport/Summary.txt to the terminal
  2. Open the HTML report (platform-aware):
  3. Windows: start TestResults/CoverageReport/index.html
  4. macOS: open TestResults/CoverageReport/index.html
  5. Linux: xdg-open TestResults/CoverageReport/index.html
Tips
  • For large solutions, scope to specific test projects to speed up collection
  • The -filefilters flag accepts wildcards -- basename matching avoids path sensitivity
按 Apache-2.0 许可原样转载,未经改动 · 在 GitHub 查看 →

评论

登录即可评论;带「已验证安装」的,是发布者名下有本店的安装或持有记录。