一句通过,需要对应一次真实运行

Claude Code总结说测试通过时,应能找到实际执行的命令、工作目录、范围和结果。文字声明、屏幕上一行PASS或某个文件已创建,都不能独立说明目标测试运行成功。

本文用Node.js 24创建两个临时教学测试:一个断言2+2等于4,另一个故意断言等于5。它们用于练习核对进程结果,不运行你项目的测试,也不评价Claude Code真实执行效果。

先把预期范围写明

要求报告具体命令、所在目录、选中的测试文件、运行版本、退出码、通过/失败数量、跳过项和未覆盖范围。对“没有执行,只做静态检查”的情况直接写明,不能与测试通过合并。

官方Claude Code最佳实践强调提供可验证的成功条件。实践中,验收条件应与任务对应:修金额逻辑就检查对应金额行为,不能只跑一个与改动无关的空测试获得绿色结果。

把测试声明对应到执行证据;先固定范围:命令、目录、文件与代码版本;实际通过样例:2+2=4;目标进程退出0;故意失败样例:2+2=5;目标进程退出1;验收还看覆盖:退出0不证明需求均已验证
本站原创示意图:把测试声明对应到执行证据。实际本地子进程练习;未运行Claude Code CLI。查看大图 ↗

运行一个通过和一个故意失败

文末脚本保存为verify-test-process.mjs,用Node.js 24 LTS执行:node verify-test-process.mjs --demo。它只在系统临时目录创建两个文件,各调用一次当前Node测试运行器,最后清理自己的临时目录。

第一条记录应exitCode为0且processSucceeded为true;第二条故意失败应exitCode为1且false,stdout包含失败详情。两个结果都打印出来,是为了验证读取失败的路径,第二条不是待修的业务缺陷。

为什么脚本外层退出0仍不够

演示脚本负责展示两种结果,所以它本身可以正常结束;真实门禁应检查目标子进程的退出码和错误,而不是只检查包装脚本退出0。若包装器吞掉失败,流水线也可能显示成功。

spawn失败或超时时status可能不是正常整数,error和signal也要记录。processSucceeded只表示该次子进程以0退出,不保证测试真的覆盖了需求,也不代表代码可以发布。

核对测试是否属于当前代码

在真实项目中同时记录当前提交或改动版本,确认测试文件没有被过滤、跳过或指向旧构建。仅有通过数量,无法知道你关心的行为有没有运行。

发现目标用例未跑,应补正确命令并保存新的原始结果;不是让模型把报告措辞改成“全部通过”。若环境不具备依赖或权限,就报告具体缺项和已完成的静态检查,不伪造执行证据。

已验证与仍需验证的边界

本站本地实际运行了这两个隔离子进程,并检查0/1退出码以及故意失败输出;未调用Claude Code CLI、模型或任何项目构建服务。演示中的临时路径以实际输出为准,不照抄成自己的工程目录。

交付时把结果解释与原始日志一起留下,删去敏感环境值。独立审阅者应能从命令和目标文件复跑同一检查,再判断测试覆盖是否足够。

参考资料与核验范围

资料核对日期:2026年10月20日。以下为官方原始资料;产品入口和可用范围仍以当前账户为准。

1. [官方资料1](https://code.claude.com/docs/en/best-practices)

2. [官方资料2](https://nodejs.org/docs/latest-v24.x/api/test.html)