重构 App 端到端测试运行方式,缩短本地与 CI 反馈时间,同时避免反复启动、关闭宿主浏览器。工作区为 code3d-issue-197-e2e-speed-codex-0919,关联观察结果修复 #206 。
当前方案与实现:
普通、独占、独立浏览器和示例测试分层;普通组默认文件并发 2,焦点/时间/持久化敏感文件串行,OPFS 身份及 agent 目录工作流在同一个独立 headless 浏览器中串行。完整入口按组顺序执行,普通组不重复示例。分类以 packages/app/scripts/browser-test-plan.mjs 为唯一入口。
默认失败即停止启动新文件;CODE3D_BROWSER_TEST_FAIL_FAST=0 可在诊断时继续跑完。记录逐文件和分组实际耗时。CI 示例分片按实测耗时均衡。
本地普通、独占和示例组连接现有 host Chrome CDP,只关闭测试自建的上下文及连接,不启动或关闭宿主浏览器;隔离组只管理自己的独立进程。CI 无宿主实例时在一次命令内复用一个自管 headless 浏览器。
基线回归中按行为修正 Agent 前景/背景摘要顺序(修正 Agent 观察中前景与背景模型的摘要顺序 #206 )、草图切换、构建缓存 Map 序列化与缓存恢复消息顺序;更新已过时断言,并为已证实的异步状态增加条件等待,不提高产品格式版本。
当前验证:普通组 71/71 文件通过,默认并发 2 耗时 26.03 分钟,同批文件耗时总和 52.01 分钟,约节省 49.9%;受限进程峰值约 820 MiB。示例 43/43、隔离组 3/3、构建缓存 E2E 6/6 及单元 6/6、App/网站构建、全仓测试类型检查与格式检查均曾通过。8 GiB、无 swap 的受限进程覆盖 WSL 测试进程,不覆盖 Windows host Chrome;宿主 Chrome 的 browser ID 在测试前后保持不变。
独占组最近一次诊断运行 16/17 文件通过,唯一失败文件为 coordinate-semantics(93/96 用例):两项是新增网格断言误用于旋转,已修正并针对性复跑通过;另一项是页面初始模型偶发进入 Model error,在测试设置源码之前发生,独立复跑通过,根因尚未确认。启动失败时现会输出模型诊断和失败请求。修正后相关三条用例 3/3 通过;独占组尚未重新整跑,因此不能标为全绿。此前坐标语义文件在相关断言修复前曾单独 96/96 通过。
四路并发实验(2026-09-19,未修改默认配置):使用 CODE3D_BROWSER_TEST_CONCURRENCY=4 与诊断模式跑完相同普通组,70/71 文件通过(346/347 用例),耗时 21 分 51 秒,比此前两路的 26 分 02 秒缩短约 16.1%。WSL 测试 cgroup 采样峰值约 1.79 GiB,8 GiB 上限、swap 为 0;不包含宿主 Chrome。文件耗时总和由约 52.01 分钟增至 82.96 分钟,说明四路的收益不是线性翻倍。唯一失败为 sketch-relations 首条用例在准备阶段等待草图编辑器显示超过 15 秒,尚未进入拖拽断言;原代码单文件复测 3/3 通过,但尚不足以确认超时根因。默认仍保留两路;未把失败用例直接移入独占组或放宽超时。结果保存为 packages/app/.cache/browser-test-timings-concurrency-4.json。Chrome browser ID 未改变,测试后没有遗留测试页面。
本批已获用户验收并于 2026-09-19 本地提交、合并至 main,已推送至远端 main,网站已随 #210 的 alpha.12 发布上线。开发提交为 7005a8ca4bf29a41c265d4a37c839eb9e776eff9,追加分片测试修正为 32bcc0d3352da9f4c24748afece16de44e6861ba,最终合并提交为 a4bb47470f595e6afe1ec8cb89109e94c1ab69f8。默认并发仍为 2。
集成主线新增示例后,原“相比 modulo 至少改善 20%”测试因目录顺序改变而失败:新目录的加权负载为 [1055, 1057, 1057, 1080] 秒,modulo 为 [865, 1200, 1033, 1151] 秒,算法仍有效但该比例不是稳定性质。已回开发区将算法效果改为固定成本 fixture 的精确分配/负载验证,并独立验证当前示例目录的完整覆盖;未改变产品算法、并发或超时。
最终合并树验证:定向单元 12/12;agent-render-mode 与 parameter-tab 浏览器回归 7/7(包含文本冲突涉及的行为);全仓类型、Prettier、diff check、App/Web 构建通过,网站 123 个 HTML/Markdown 页面链接、锚点及资源通过。浏览器回归使用同一宿主 Chrome,临时 Vite 测试服务已关闭,没有遗留测试页面。本轮没有重跑完整端到端套件,不能将此前独占组或四路实验标记为全绿。
本 issue 是部分交付,保留打开且不写关闭关键词。剩余范围:定位初始 Model error 及四路草图编辑器超时的原因,并再次验证完整独占组。开发 worktree、分支及 5180 开发服务器保留用于该未完成范围。关联 #206 已单独完成验收,在最终合并提交包含关闭关键词,已随 a4bb474 推送至远端 main 自动关闭,状态标签已清理。
重构 App 端到端测试运行方式,缩短本地与 CI 反馈时间,同时避免反复启动、关闭宿主浏览器。工作区为
code3d-issue-197-e2e-speed-codex-0919,关联观察结果修复 #206。当前方案与实现:
packages/app/scripts/browser-test-plan.mjs为唯一入口。CODE3D_BROWSER_TEST_FAIL_FAST=0可在诊断时继续跑完。记录逐文件和分组实际耗时。CI 示例分片按实测耗时均衡。当前验证:普通组 71/71 文件通过,默认并发 2 耗时 26.03 分钟,同批文件耗时总和 52.01 分钟,约节省 49.9%;受限进程峰值约 820 MiB。示例 43/43、隔离组 3/3、构建缓存 E2E 6/6 及单元 6/6、App/网站构建、全仓测试类型检查与格式检查均曾通过。8 GiB、无 swap 的受限进程覆盖 WSL 测试进程,不覆盖 Windows host Chrome;宿主 Chrome 的 browser ID 在测试前后保持不变。
独占组最近一次诊断运行 16/17 文件通过,唯一失败文件为
coordinate-semantics(93/96 用例):两项是新增网格断言误用于旋转,已修正并针对性复跑通过;另一项是页面初始模型偶发进入Model error,在测试设置源码之前发生,独立复跑通过,根因尚未确认。启动失败时现会输出模型诊断和失败请求。修正后相关三条用例 3/3 通过;独占组尚未重新整跑,因此不能标为全绿。此前坐标语义文件在相关断言修复前曾单独 96/96 通过。四路并发实验(2026-09-19,未修改默认配置):使用
CODE3D_BROWSER_TEST_CONCURRENCY=4与诊断模式跑完相同普通组,70/71 文件通过(346/347 用例),耗时 21 分 51 秒,比此前两路的 26 分 02 秒缩短约 16.1%。WSL 测试 cgroup 采样峰值约 1.79 GiB,8 GiB 上限、swap 为 0;不包含宿主 Chrome。文件耗时总和由约 52.01 分钟增至 82.96 分钟,说明四路的收益不是线性翻倍。唯一失败为sketch-relations首条用例在准备阶段等待草图编辑器显示超过 15 秒,尚未进入拖拽断言;原代码单文件复测 3/3 通过,但尚不足以确认超时根因。默认仍保留两路;未把失败用例直接移入独占组或放宽超时。结果保存为packages/app/.cache/browser-test-timings-concurrency-4.json。Chrome browser ID 未改变,测试后没有遗留测试页面。本批已获用户验收并于 2026-09-19 本地提交、合并至 main,已推送至远端 main,网站已随 #210 的 alpha.12 发布上线。开发提交为
7005a8ca4bf29a41c265d4a37c839eb9e776eff9,追加分片测试修正为32bcc0d3352da9f4c24748afece16de44e6861ba,最终合并提交为a4bb47470f595e6afe1ec8cb89109e94c1ab69f8。默认并发仍为 2。集成主线新增示例后,原“相比 modulo 至少改善 20%”测试因目录顺序改变而失败:新目录的加权负载为 [1055, 1057, 1057, 1080] 秒,modulo 为 [865, 1200, 1033, 1151] 秒,算法仍有效但该比例不是稳定性质。已回开发区将算法效果改为固定成本 fixture 的精确分配/负载验证,并独立验证当前示例目录的完整覆盖;未改变产品算法、并发或超时。
最终合并树验证:定向单元 12/12;agent-render-mode 与 parameter-tab 浏览器回归 7/7(包含文本冲突涉及的行为);全仓类型、Prettier、diff check、App/Web 构建通过,网站 123 个 HTML/Markdown 页面链接、锚点及资源通过。浏览器回归使用同一宿主 Chrome,临时 Vite 测试服务已关闭,没有遗留测试页面。本轮没有重跑完整端到端套件,不能将此前独占组或四路实验标记为全绿。
本 issue 是部分交付,保留打开且不写关闭关键词。剩余范围:定位初始
Model error及四路草图编辑器超时的原因,并再次验证完整独占组。开发 worktree、分支及 5180 开发服务器保留用于该未完成范围。关联 #206 已单独完成验收,在最终合并提交包含关闭关键词,已随 a4bb474 推送至远端 main 自动关闭,状态标签已清理。