SuperAPI AI 工具集

dotnet-test-quality

测试与质量

查看项目

更新于 10-16 01:48

技能介绍

用途:面向 .NET 项目的测试质量分析,评估测试有效性。前提是已通过配套技能搭建好测试项目并引用 coverlet 包,.NET 8.0+ 基线。

主要能力:

  1. Coverlet 代码覆盖率:推荐 coverlet.collector 数据收集器,用 dotnet test --collect:"XPlat Code Coverage" 收集,支持 cobertura/opencover 等格式,可在 runsettings 中排除测试项目、生成代码、Migrations 等。
  2. ReportGenerator:安装 dotnet tool install -g dotnet-reportgenerator-globaltool,用 reportgenerator -reports:"..." -targetdir:... -reporttypes:"Html;TextSummary" 生成 HTML、文本摘要、徽章等,可合并多测试项目覆盖率。ReportGenerator 本身不强制阈值;coverlet.msbuild 可用 /p:Threshold=80 /p:ThresholdType=line /p:ThresholdStat=total 设阈值,collector 方案需在 CI 脚本解析摘要。
  3. CRAP 分析:基于复杂度与覆盖率的 CRAP(m)=complexity^2*(1-coverage/100)^3+complexity,用 OpenCover 格式配合 ReportGenerator 的 RiskHotspots 报告定位高风险方法。
  4. Stryker.NET 变异测试:dotnet tool install -g dotnet-stryker,在测试项目目录运行 dotnet stryker,用 stryker-config.json 配置项目、报告器、变异范围与 high/low/break 阈值,结果为 Killed、Survived、No Coverage、Timeout,变异得分=Killed/(Killed+Survived+NoCoverage)*100。
  5. 脆弱测试检测:重复运行、常见原因(共享状态、时间依赖、竞态、外部依赖、端口冲突、文件系统争用),用 TimeProvider/FakeTimeProvider 替代 DateTime.Now,xUnit v3 支持条件跳过,无法立即修复的可加 Skip 并引用跟踪问题隔离。

适用场景:本地评审、CI 产物、PR 评论、把测试投入优先放在高复杂度低覆盖代码与业务关键路径上。

限制:测试项目脚手架由其他技能负责;测试策略与类型选择、CI 集成由相应技能负责。变异测试计算开销较大,建议只对关键路径运行。官方原始资料在此处截断,其余细节暂未提供。