SuperAPI AI 工具集

dotnet-testing-test-output-logging

测试与质量

查看项目

更新于 10-15 23:45

技能介绍

用途:在 .NET xUnit 测试项目中实现测试输出与日志记录,帮助定位失败原因并保留诊断信息。

主要能力:讲解 ITestOutputHelper 的构造式注入与生命周期限制;提供结构化输出 helper(章节标题、键值、时间戳);说明 ILogger 扩充方法无法直接 Mock,需拦截底层 Log<TState>,并给出 AbstractLogger<T> 抽象层方案;提供 XUnitLogger<T>(将日志导向测试输出)与 CompositeLogger<T>(同时验证与输出)的实作思路;包含性能测试时间点记录与 DiagnosticTestBase 诊断基类示例。

使用方式:测试类通过构造式注入 ITestOutputHelper;Logger 测试使用 Substitute.For<AbstractLogger<T>>() 并验证日志层级与关键字;需要同时验证与诊断时组合 mock 与 XUnitLogger。示例文件位于 templates/ 目录:itestoutputhelper-example.cs、ilogger-testing-example.cs、diagnostic-tools.cs。

适用场景:复杂或易失败的单元测试、需要诊断输出的集成测试、性能测试的阶段耗时记录。

限制与注意:ITestOutputHelper 实例与测试方法绑定,不可静态存取或跨方法共用,Dispose 中使用会出错;异步测试需正确 await,否则输出可能丢失;避免过度输出拖慢测试,且不得记录密码、密钥等敏感信息;验证日志时建议校验层级与关键字,而非完整消息字符串。具体安装命令与收费信息暂未提供。