用途:为已有游戏项目搭建完整的 E2E 测试基础设施,产出可靠的测试基础,包括测试夹具、场景构建器、输入模拟器与异步断言工具,并结合项目架构与引擎定制。
触发方式:用户说"e2e scaffold"或"set up e2e testing"等触发词即启动。
前置要求:测试框架已初始化(需先运行 test-framework 工作流);游戏存在可识别的状态管理类;主游戏场景可用;尚无 E2E 基础设施(检查 Tests/PlayMode/E2E/ 或引擎等价目录,存在则暂停询问)。
必要输入:game_state_class(主状态管理类名,必填)、main_scene(主玩法场景名,必填)、input_system(可自动检测)。
激活流程:运行 uv run {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --project-root {project-root} --key workflow 解析工作流块,失败则按 customize.toml、团队覆盖、个人覆盖顺序读取并合并;依次执行前置步骤、加载持久事实、从 {project-root}/_bmad/gds/config.yaml 加载配置(user_name、communication_language)、问候用户、执行附加步骤。
执行内容:识别核心系统(游戏状态管理器、输入处理、事件/消息系统、场景结构),识别领域概念(实体、状态机状态、空间系统、资源)作为 ScenarioBuilder 的基础;随后生成 GameE2ETestFixture.cs、带流式 API 的 ScenarioBuilder.cs、InputSimulator.cs(区分新/旧输入系统)和 AsyncAssert.cs(WaitUntil、WaitForValue、WaitForValueApprox、AssertNeverTrue、WaitFrames 等),写入磁盘并附带示例测试。
输出:展示所用引擎与版本、创建文件树、配置表(状态类、主场景、输入系统、就绪属性),并列出需自行定制的部分(领域方法、游戏特定输入、示例测试 UI)与后续步骤(先运行 Infrastructure_GameLoadsAndReachesReadyState 验证,再扩展构建器与模拟器,最后用 test-design 与 automate 工作流)。
限制:需先完成测试框架初始化;输入缺失关键项时停止并引导用户;如已存在 E2E 基础设施会暂停询问。