用途:当用户需要编写单元测试时,触发该 skill,用于为 FastGPT 代码编写单元测试。
测试文件位置:packages 里的测试写在 FastGPT/packages/xxx/test 目录下,子路径对应 packages 目录结构,例如 packages/global/common/error/s3.ts 对应 packages/test/global/common/error/s3.test.ts,可通过 @fastgpt 导入 packages 文件,如 import { s3 } from '@fastgpt/global/common/error/s3'。projects 里的测试写在 FastGPT/projects/app/test 目录下,子路径对应 projects 目录结构,例如 projects/app/src/pages/api/core/dataset/collection/create.ts 对应 projects/app/test/api/core/dataset/collection/create.test.ts。
文件规则:每个文件对应一个测试文件,每个函数对应不同 describe 块;需覆盖 100% 行数和分支;尽量不引入第三方依赖库,使用较原生方式检查,如需引入则从对应文件 export 依赖库给 test 使用;尽量减少函数 mock,系统原生可运行函数无需 mock,只 mock 无法本地直接运行的依赖(如远程服务、API 密钥);type.ts、constants.ts、schema.ts、*.schema.ts 文件及静态数据直接跳过;根据 vitest.config.mts 跳过不需测试的文件;Mock.ts 含全局 mock,编写时勿重复 mock。基础函数文件尽量不 mock,完整运行其逻辑;带 API 请求的函数 mock 对应请求进行测试。
编写流程:先获取需编写的测试文件并创建任务清单;测例可并行编写,检查 .test.ts 是否存在,没有则创建,分析代码后编写样例并检查 TS 错误;最后调用 pnpm test <file-path> <test-name> 运行并检查覆盖率,确保每个文件覆盖率达到 90% 以上,不通过则检查代码逻辑或测试用例并回到编写环节。
测试场景:基础场景、复杂场景、边界值、安全边界情况(死循环、系统崩溃、超大数据等)、异常场景。
常用命令:# 运行所有测试 pnpm test;# 运行指定测试文件 pnpm test <file-path>;# 运行指定测试文件的指定测试 pnpm test <file-path> <test-name>。
限制:资料未提供该技能的收费、价格、支持平台及具体安装步骤等信息。