用途:用于编写、录制、更新、验证或排查 VS Code Agent Host 的端到端与真实 provider 集成测试。测试会完整运行 agent host(真实服务器、真实捆绑 provider SDK/CLI、真实 AHP 协议),同时回放已提交的 YAML fixture 中录制的模型流量,因而具备确定性和免令牌性。
主要能力与用法:动手前须先阅读架构与排查参考 src/vs/platform/agentHost/test/node/e2e/README.md,其中记录心智模型、fixture 格式、所有配置标志及症状→原因→修复排查表。核心约束:回放为默认且严格,未录制的请求即硬缓存未命中;fixture 名由测试标题派生,重命名模型测试会产生孤立 yaml,需重新录制;hostOnlyTest(...) 共享 captures/empty.yaml。录制需凭据,使用 AGENT_HOST_REPLAY_RECORD=1 并需要 GITHUB_TOKEN 或 gh auth token,提示应简短只读。fixture 为生成产物,不可手改;如含不稳定或敏感数据,应修复规范化/脱敏后重录。禁用变体需在 e2e/KNOWN_ISSUES.md 中登记范围、预期与实测行为及复现命令。Azure 验证为必需:每个新测试合并前须通过 VS Code 流水线定义 111 的聚焦构建。
基础流程:选择边界与层级;将测试加入最接近的套件;实现最小确定性场景;断言契约的主要可观察结果;录制每个启用的 provider fixture;审查生成产物;本地在严格回放下运行聚焦测试及相邻测试;在 CI 中提交草稿 PR 并完成跨平台 Azure 验证。计时、进程生命周期、文件系统监视、重连、重启和工作树测试需在每个支持平台上有两次干净执行。
录制或重录命令示例:AGENT_HOST_REPLAY_RECORD=1 ./scripts/test-integration.sh --run src/vs/platform/agentHost/test/node/e2e/providers/claudeAgentHostE2E.integrationTest.ts。单 provider 回放:./scripts/test-integration.sh --run <path>;过滤单个测试加 --grep "<test title fragment>"。
限制与注意:回放成功不等于执行成功;实时工具、MCP 服务器、钩子和文件系统操作仍可能失败。应在可观察状态上同步而非依赖时间。实时流式、回合中途中止及 POSIX 专属本地执行无法可靠回放,需精确设门并注释原因。超时或挂起时先读运行日志;任何失败可查 README 排查表。平台支持范围、收费与价格等资料暂未提供。