SuperAPI AI 工具集

tests

测试与质量

查看项目

更新于 10-16 06:16

技能介绍

用途:SonarJS 规则测试的编写与维护指南,帮助理解测试结构、修复误报和调试规则。

文件位置:规则的测试文件与规则实现同目录,如 unit.test.ts;测试夹具位于 packages/analysis/src/jsts/rules/{RULE_ID}/fixtures/。

主要能力与结构:采用 ESLint 规则测试器模式,在 describe/it(node:test)中使用 DefaultParserRuleTester,通过 valid 与 invalid 数组区分合规与非合规代码;invalid 条目可用 errors 指定预期问题数量或 ESLint 错误对象(可断言 messageId 与 suggestions),必要时通过 options 传入规则配置。

误报处理:修复误报时把用例加入 valid 数组;把 FP reproducer 从 invalid 移到 valid 时,需移除 errors 与 output/suggestions 等自动修复期望,保留 filename、options 等设置;用例从 invalid 变为 valid 应移动而非删除。

调试:可通过备份测试文件、仅保留单个用例、记录通过/失败再还原的方式隔离失败用例。

装饰器规则:当 meta.ts 含 implementation = 'decorated' 时,需在主 describe 前添加上游哨兵 describe,读取 decorator.ts、meta.ts、index.ts 确定导入与 eslintId,使用 external/ 垫片而非直接导入 eslint-plugin-* 或 eslint/use-at-your-own-risk,且不修改被装饰规则的测试。

限制:文档明确不要直接运行单元测试,由编排工具在每步后运行;rulling 集成测试位于独立的 SonarJS-Ruling 仓库。