用途:对测试代码进行正式、系统化的坏味道审计,识别让测试难以理解、更脆弱、更难发现缺陷或维护成本更高的设计或实现问题,并输出按严重程度排序、带定位和修复建议的报告。
主要能力:检测 19 类分类坏味道,正文重点说明核心 10 类:条件测试逻辑(if/else/switch/三元/循环,高)、神秘访客(依赖文件、数据库、网络、环境变量且未显式隔离,高)、睡眠测试(sleep/delay 等待,高)、无断言测试(高)、急切测试(一个测试调用 4 个以上生产方法,中)、魔法数字(中)、敏感相等(用 ToString 比较,中)、测试内异常处理(try/catch 或 throw,中)、通用夹具(setup 初始化字段被不到一半测试使用,低)、被忽略/禁用测试(低)。另可查阅扩展目录中的额外 9 类。
使用方式:输入一或多个测试文件或测试项目目录(必填),生产代码可选用于判断模式是否合理。流程为收集测试代码、逐方法与类扫描坏味道、按校准规则降噪、报告结果。输出含汇总面板(严重程度、数量、受影响测试)、按严重程度分组的发现(名称、级别、文件与方法、代码片段、具体修复示例、遗留风险)、无坏味道模式提示,以及按影响、工作量、风险排序的修复计划。.NET 相关标记、断言与跳过 API 可参考 exp-dotnet-test-frameworks。
适用场景:用户需要全面或正式的测试坏味道审计、想评估测试是否写得好、想要具学术严谨性的测试质量健康检查、怀疑测试脆弱或不稳定并希望深入排查时使用。
限制:不适合快速务实的测试评审、专门评估断言多样性、查找重复样板或从零编写新测试、修复特定失败测试等场景。需注意校准,集成测试不因使用真实资源而被过度判罚,简单 foreach 断言循环、上下文自明的计数数字不作坏味道,捕获后断言的异常模式仅记为待改进;若测试套件干净,报告应直接说明。