codex测试编写任务模型怎么选择?
先判断测试任务的复杂度
不是所有测试都适合用最强模型。简单单元测试用高配模型反而会过度设计,拖慢响应;而集成测试漏掉关键路径,用轻量模型根本发现不了。
看这三类典型场景:
① 单文件函数级测试(如校验邮箱格式的工具函数)→ 属于【低复杂度】,重点在语法正确、基础分支覆盖;
② 多模块交互测试(如用户登录→权限校验→日志记录链路)→ 属于【中复杂度】,需理解调用关系与副作用;
③ 全链路契约/异常注入测试(如模拟数据库连接中断后服务降级行为)→ 属于【高复杂度】,依赖对框架机制和错误传播路径的深度认知。
按复杂度匹配模型与推理档位
方法一:低复杂度任务 → 用 gpt-5.4-mini + low
这一步操作起来很简单,直接在输入框右下角点模型切换器,选 gpt-5.4-mini,再把推理强度设为 low。它能快速生成带 assert 的基础用例,不深挖隐藏状态。
方法二:中复杂度任务 → 用 gpt-5.3-codex + medium
必须提供被测函数所在文件的完整签名和关键注释,否则模型会凭空编造 mock 行为。例如上传 service.py 后,要明确说“请基于第12–18行的 login_user() 函数签名生成测试,注意它依赖 auth_repo 和 logger 实例”。
方法三:高复杂度任务 → 用 gpt-5.5 + high
【切勿跳过计划模式】。先输入“启用计划模式,为订单支付服务编写全链路异常测试”,等 Codex 输出包含“拟 mock 的3个外部依赖”“将触发的5种异常路径”“需验证的4个降级结果”的结构化方案后,再让它执行。跳过这步直接生成代码,90%概率漏掉熔断器状态变更这类关键断言。
特别注意两类易踩坑场景
当你在 Codex CLI 中运行测试生成任务时,如果提示“context limit exceeded”,别急着换模型——先检查是否把整个 src 目录拖进去了。Codex CLI 默认只读取当前命令所在路径下的文件,【上级目录或 node_modules 不会被自动纳入上下文】。应该用 --include 参数显式指定范围,例如 codex test --include ./src/payment --include ./tests/utils。
如果你正在为遗留 Java 项目补测试,且项目使用 Lombok,必须在提示词里写明:“所有实体类使用 @Data 注解,getter/setter 由 Lombok 生成,请勿在测试中手动调用 setXXX()”。否则模型会按传统 Java 写法生成冗余赋值语句,导致编译失败。
推荐阅读:
codex历史任务查找效率怎么提高?