Codex可在终端自动执行Vitest测试:需版本≥2.4.0、本地安装vitest、存在vitest.config.ts;支持TUI交互、命令行直跑(--approval-mode auto-edit)、精准文件绑定三种方式,并能智能修复ReferenceError、TimeoutError及覆盖率路径错位问题。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

你需要让 Codex 在终端里自动执行 Vitest 测试,而不是手动敲命令或切换到 IDE 点按钮——尤其当你刚改完 src/utils/api.ts、想立刻验证所有关联测试是否仍通过时,Codex 能跳过配置检查、路径拼写、参数遗漏等琐碎环节,直接跑出结果并定位失败根因。
确认 Codex 与 Vitest 环境就绪
打开终端,进入项目根目录,运行 codex --version 确认版本 ≥ 2.4.0;旧版本不支持 sandbox 模式下的 Vitest 自动执行。
运行 npm ls vitest 或 pnpm list vitest,确保输出显示本地安装的 vitest(如 vitest@2.1.1),【全局安装的 vitest 会被 Codex 忽略】。
检查项目根目录是否存在 vitest.config.ts,哪怕只有一行 export default {} ——没有它,Codex 无法识别测试入口和路径规则,会直接报错“no test files found”。
三种触发方式任选其一
方法一:交互式 TUI 中运行
输入 codex 启动全屏界面 → 在底部输入框键入 “运行全部 Vitest 测试” → 按回车 → Codex 自动检测 vitest.config.ts 中的 testMatch 规则 → 执行 vitest --no-file-parallelism --run → 将原始输出解析为带失败堆栈高亮的摘要视图。
方法二:命令行直跑(推荐 CI/快速验证)
终端输入:codex "run all vitest tests with coverage" --approval-mode auto-edit。
这会跳过人工确认,直接运行并生成覆盖率报告;若某测试因断言偏差失败,Codex 会尝试修改 expect(...).toBe(...) 中的期望值,但仅限于它能确定是“预期变更”而非逻辑错误的场景。
通过本地 MCP 桥接程序将 QQ 邮箱接入 Codex,配置所需的.env凭证信息、注册 MCP 服务端,并完成收件箱读取与邮件发送的全流程测试。适用场景:用户需要将 QQ 邮箱连接至 Codex、让 Codex 读取 / 发送 QQ 邮件、安装 / 修复qq_mail MCP 服务端,或是在 Windows 系统上排查 IMAP/SMTP 配置故障时,执行以上操作。
方法三:绑定源码文件精准执行
例如你刚改了 src/composables/useAuth.ts,想只跑依赖它的测试:运行 codex "run vitest tests that import useAuth.ts"。
Codex 会静态分析所有 .test.ts 文件的 import 语句,筛选出真正引用该模块的测试文件,再执行 vitest run [file1] [file2] ——避免全量跑导致的等待延迟。
处理 Vitest 特有失败类型
第一步:识别 ReferenceError: React is not defined 类错误
当输出出现该错误,Codex 会自动检查 vitest.config.ts 是否注册了 @vitejs/plugin-react;未注册则插入 import react from '@vitejs/plugin-react'; plugins: [react()] 并重试,【不修改已有插件顺序,避免破坏 Vue/React 混合项目】。
第二步:定位 TimeoutError 的真实瓶颈
若某个 it() 超时,Codex 不会盲目加 --test-timeout=30000,而是先运行 vitest --reporter=verbose --no-file-parallelism 获取单个测试的详细耗时分布;若发现 Import 占比超 80%,则提示 “请检查 barrel file 是否误导出大型工具库”,而非直接调参。
第三步:修复覆盖率报告路径错位
在 monorepo 中,Vitest 默认输出的 coverage/vitest-coverage.json 里路径为 ../packages/core/src/index.ts,而 VSCode 工作区路径是绝对路径;Codex 会自动追加 --relative 参数并重写 coverage.watermarks 配置,使 Coverage Gutters 插件能正确映射行号。










