coverage-report
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 oh-my-skill add nikiforovall/claude-code-rules/coverage-reportcurl -fsSL https://oh-my-skill.com/install.sh | bash -s -- nikiforovall/claude-code-rules/coverage-reportnpx oh-my-skill verify nikiforovall/claude-code-rules/coverage-report怎么用
商店整理自技能原文 · 版本 642e21e · 表述以原文为准安装后,Claude 会分析当前 Git 分支与基分支(如 main)相比有变化的 .cs 源文件,然后运行相关测试并收集代码覆盖率,最终生成一个只针对这些变更文件的 HTML 覆盖率报告,并在终端显示摘要。
当你要求为当前分支的代码变更生成覆盖率报告时触发。例如,你说“生成覆盖率报告”或“对比主分支看看我改的代码测试覆盖率”。
技能原文 SKILL.md
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):
- User-specified: If the user names a test project, use it
- Convention-based: Look for test projects whose name matches the changed project (e.g.,
MyProject->MyProject.Tests) - Solution-wide: Run all tests in the solution if scope is unclear
- 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
- Print
TestResults/CoverageReport/Summary.txtto the terminal - Open the HTML report (platform-aware):
- Windows:
start TestResults/CoverageReport/index.html - macOS:
open TestResults/CoverageReport/index.html - Linux:
xdg-open TestResults/CoverageReport/index.html
Tips
- For large solutions, scope to specific test projects to speed up collection
- The
-filefiltersflag accepts wildcards -- basename matching avoids path sensitivity