SuperAPI AI 工具集

run-pre-commit-checks

测试与质量

查看项目

更新于 10-16 00:32

技能介绍

用途:在任何代码提交前,强制执行 lint、类型检查与单元测试三项必过检查,确保变更不引入类型错误、风格问题或功能回归。

何时使用:每次提交代码变更前;修复审查者或 Copilot 审查意见后;推送变更前;维护者智能体要求做预提交验证时。

必过检查(三项均须通过):

  1. Lint:npm run lint,检查 eslint.config.mjs 定义的 ESLint 规则、TypeScript 相关规则、导入顺序与未用导入、代码风格。自动修复用 npm run lint -- --fix。
  2. 类型检查:npm run compile-tests,检查 TypeScript 类型错误、缺失导入、类型不匹配、严格空值检查;输出到 out/ 目录(不用于生产)。
  3. 单元测试:npm run unittest,检查 src/test/ 下全部单元测试,使用 Mocha 框架,配置来自 build/.mocha.unittests.json。

完整流程:依次执行 npm run lint、npm run compile-tests、npm run unittest;全部通过后再执行 git add -A 与 git commit。

常见失败与修复:未使用变量(@typescript-eslint/no-unused-vars)删除变量或以 _ 前缀;import/order 运行 npm run lint -- --fix;禁用 any(@typescript-eslint/no-explicit-any)补类型注解;no-console 改用 traceLog/traceVerbose。类型错误包括 TS2339(属性不存在,检查属性名或加类型守卫)、TS2345(参数类型不匹配)、TS2322(类型不可赋值)、TS18048(可能为 undefined,加空值检查或可选链)。测试失败需读失败信息,确认行为变更是否有意,有意则更新测试,无意则修代码。

与审查流程集成:代码变更 → 审查智能体 → 预提交检查 → 提交;发现问题则修复后重跑审查与检查。不得跳过预提交检查。

自动化:每个 PR 由 CI 自动运行;处理审查意见后可手动触发;合并前由 CI 自动运行。hooks 系统可在文件编辑后自动运行 lint(见 .github/hooks/)。