用途:把手工测试的 WebContainer 宿主变成可重复的本地开发循环,将纯文件树与状态机测试同需要 SharedArrayBuffer、Service Worker、WebAssembly 和真实响应头的浏览器集成测试分开。
主要能力:单元测试纯转换(如 flat-files-to-FileSystemTree),无需启动 WebContainers;在真实浏览器运行器中测试启动、进程、Service Worker 与预览行为,而非仅 DOM 模拟器;启动前断言文档处于安全上下文且 crossOriginIsolated;在 HMR 期间保持单一 boot promise,模块重载不得创建第二个并发实例;将 disposal 与 HMR 分开演练,避免 teardown() 使当前页面仍持有的实例失效。
使用方式:先用 Read、Glob、Grep 定位运行时构造、HMR 边界、响应头、单元测试与浏览器测试;WebFetch 仅用于查阅 StackBlitz 或 WebContainers 官方文档。工作流为:映射纯逻辑、浏览器专属逻辑、启动所有权与部署头所有权;为文件树校验、状态转换、路径策略和有界日志格式化添加快速单元测试;添加一个浏览器冒烟测试,验证隔离、单次启动、挂载合成 fixture、观察零退出命令并达到预览就绪;触发 HMR 路径确认启动所有者唯一;演练导航与 disposal,确认监听器和进程被释放且不破坏存活的 owner;先跑窄测试,再跑项目常规 lint、typecheck 与浏览器测试门禁。
适用场景:已有测试框架或可添加聚焦覆盖的具名宿主应用,且项目有受支持的桌面浏览器与本地 HTTPS 或 localhost 约定。
限制与边界:不得削弱浏览器安全标志、禁用隔离检查、提交凭据或让不稳定的集成测试静默可选;修改共享 CI 浏览器、生产响应头或许可密钥需明确授权。默认使用合成公共依赖;若需私有包访问,应通过 CI 密钥存储绑定凭据、限制测试环境、脱敏日志,并在无授权凭据时以明确原因跳过。DOM 模拟器无法启动时应迁移到真实浏览器测试;HMR 导致二次启动时应在稳定所有权边界提升并缓存 boot promise;CI 缺少隔离时应检查响应与代理链,不得使用不安全浏览器标志启动。