本文根据 Codex 官方文档《Prompting Codex》《Custom instructions with AGENTS.md》整理,资料核对于 2026-11-05。配图为本站整理的示意图,不是软件截图。本站(bigolab.com)不是 OpenAI 官方网站。安装与配置见 /guides/codex-getting-started,本文只讲怎么拿 Codex 写测试。
适用于谁
- 项目有了功能,却几乎没有测试,想补上的人;
- 不知道怎么给一个函数设计测试用例的人;
- 让 AI 写过测试,结果跑不通或者“永远通过”的人。
结论先说
- 指明要测什么。 官方示例的做法:IDE 里选中函数所在的行,用命令面板的 “Add to Codex Thread” 加进对话;命令行里用
@指明文件,并在提示词里说清是哪个函数。 - 让它跟随项目已有的写法。 官方示例的要求是“遵循其他测试里用的惯例”,测试框架、命名、目录结构就不会跑偏。
- 说清覆盖范围。 官方示例要求覆盖正常路径加上边界情况。
- 让它运行测试,并报告命令和结果。 官方在 Fix a bug 一节要求它运行检查并汇报命令与结果,这个习惯同样适用于测试。
- 能跑通不等于写对了。 断言是否有意义,要你自己看。

图:本站根据 Codex 官方文档《Prompting Codex》 整理的示意图
一、动手前:先让项目告诉它怎么测
最好的办法是把测试命令写进 AGENTS.md。官方 AGENTS.md 页的示例就是这种写法,比如“修改 JavaScript 文件后总是运行 npm test”。写好以后,Codex 每次开工前会读到它,读取规则见 /guides/codex-agents-md-how-it-reads。
如果项目里还没有任何测试,先问清楚用什么框架。可以让它根据 package.json、pyproject.toml 之类的配置文件判断,再由你确认,而不是让它自己随便选一个新框架。
二、4 段可以直接复制的提示词
方括号里是要你自己填的内容。
1. 给一个函数写单元测试
请为 @[文件路径] 里的函数 [函数名] 写单元测试。
要求:
1. 跟随项目里现有测试的写法和目录约定(可以先看看 [已有测试文件] );
2. 覆盖正常情况,以及这些边界:[空值、负数、超长输入、重复数据];
3. 不要修改被测函数本身;如果你发现函数有 bug,先告诉我,不要擅自改。
写完后运行这些测试,把命令和结果告诉我。
2. 先列用例,确认后再写
请先阅读 @[文件路径],列出 [函数名] 值得测试的情况,按“正常、边界、异常输入”分组,每项一句话。先不要写代码。
我确认之后你再生成测试。
先看清单再写代码,可以避免它漏掉你关心的场景,也可以让你补充业务上才知道的规则。
3. 让测试失败的先别急着改
刚才运行测试有 [N] 个失败。请逐个分析:是测试写错了,还是被测代码确实有问题?给出判断依据。
不要为了让测试通过而放宽断言或删除用例。需要改被测代码的地方,先告诉我你的理由。
[粘贴失败输出]
4. 补回归测试
我们刚修复了 [bug 描述]。请添加一条回归测试:在修复之前会失败,修复之后会通过。放在 [测试文件] 里,跟随已有写法。
请说明你是怎么确认它“修复前会失败”的。
测试和修复一起做的方法见 /guides/codex-fix-bug-error-repro-prompt。
三、检查 AI 写的测试

图:本站整理的示意图
- 断言有没有意义:好测试检查的是行为(输入某值,得到某结果),而不是把实现照抄一遍;
- 故意改坏试试:把被测函数里的一个判断改反,测试应该失败;如果还是通过,说明测试没起作用;
- 看有没有改动原有测试:特别是“为了让测试通过”而删除用例、放宽断言;
- 数据:不要把真实用户数据、密钥写进测试,用虚构数据;
- 运行环境:让它说清是在什么命令下通过的,自己也运行一遍;
- 权限:测试可能需要联网、写文件,遇到审批请求时按需决定,见 /guides/codex-permissions-sandbox。
四、不同类型的代码,测试怎么提
下面是通用的测试经验,不是官方规定:
- 纯函数(输入决定输出,如价格计算、字符串处理):最适合先写,用例清楚,要求覆盖边界值,比如零、负数、空字符串、很大的数;
- 带数据库或网络的代码:让它说明怎么隔离外部依赖,比如用假数据或模拟对象,不要在测试里连接真实的生产数据库,也不要调用会产生费用的真实接口;
- 页面组件:先说清你想验证的是显示内容还是点击行为,再让它选合适的测试方式,项目里已有的写法优先;
- 异步或时间相关的逻辑:提醒它避免依赖当前时间和随机数,否则测试时好时坏,难以排查。
不确定该怎么测时,可以直接问它:“这段代码最容易出错的 3 个地方是什么?各用什么测试验证?”拿到回答后,再决定要写哪些。写好的测试要留在版本控制里,由你提交,不要让它在你没确认的情况下批量改动其他文件。
常见问题
Q:测试一直失败,它反复改怎么办?
中断它,让它先解释失败原因,再决定改测试还是改代码。反复试错会消耗额度,额度规则见 /guides/codex-usage-limits。
Q:它能一次给整个项目补齐测试吗?
不建议。按模块、按文件分批做,每批你都看一遍、运行一遍,再进下一批。
Q:测试覆盖率要不要追求 100%?
这是工程取舍,不是官方要求。优先覆盖核心逻辑和容易出错的地方。
Q:用 Codex 需要付费吗?
Codex 随 ChatGPT 套餐提供,具体额度以官方页面为准;想了解套餐可以看看 /chongzhi/chatgpt-plus 里的说明。
参考资料
- Codex 官方文档:Prompting Codex — https://learn.chatgpt.com/docs/prompting
- Codex 官方文档:Custom instructions with AGENTS.md — https://learn.chatgpt.com/docs/agent-configuration/agents-md
0 条评论
还没有评论,来抢沙发~