用途:该技能把 .NET 解决方案的原始覆盖率数据转化为按风险排序的热点清单,回答“下一步该写哪些测试”“哪些未覆盖代码有风险”“覆盖率为何停滞”“这段代码是否适合重构”等问题。当用户提到测试覆盖率、覆盖缺口、代码风险、CRAP 分数、该在哪里补测试或覆盖率停滞时适用。不适用于单方法 CRAP 分析(应使用 crap-score 技能)、编写或生成测试、与覆盖率无关的常规测试执行,以及不带 CRAP 上下文的覆盖率报告。
主要能力:按方法计算 CRAP 分数并标记超过阈值的方法;输出风险热点表(默认前 10 个);支持行覆盖率(默认 80%)、分支覆盖率(默认 70%)和 CRAP 阈值(默认 30)配置;自动检测每个测试项目的覆盖率提供程序(Microsoft CodeCoverage 或 Coverlet),并选择侵入性最小的执行策略;可从零运行测试生成 Cobertura XML,也可直接分析用户已有的 Cobertura XML。
使用方式:输入为项目/解决方案路径(默认当前目录)及可选阈值。前置条件包括已安装 .NET SDK、至少一个引用生产代码的测试项目(xUnit、NUnit 或 MSTest),从零路径可能需要 NuGet 访问以添加 coverlet.collector 或 Microsoft.Testing.Extensions.CodeCoverage。工作流分五阶段:定位解决方案与测试项目、创建输出目录并发现已有 Cobertura XML、运行 dotnet test 收集覆盖率、用脚本计算 CRAP 与风险热点、输出面向用户的摘要;第五阶段 ReportGenerator 生成 HTML/CSV 报告为可选,且必须在摘要交付后运行。若用户提供已有 Cobertura XML,则跳过测试执行阶段。
限制:核心分析依赖 Cobertura XML;ReportGenerator 仅提供额外报告。若阶段失败或超时,应跳过可选工作并返回部分摘要。资料未提供具体收费、价格或平台支持范围等信息。