146 lines
4.6 KiB
YAML
146 lines
4.6 KiB
YAML
# E2E Test Infrastructure Scaffold Workflow
|
|
|
|
workflow:
|
|
id: e2e-scaffold
|
|
name: E2E Test Infrastructure Scaffold
|
|
version: 1.0
|
|
module: bmgd
|
|
agent: game-qa
|
|
|
|
description: |
|
|
Scaffold complete E2E testing infrastructure for an existing game project.
|
|
Creates test fixtures, scenario builders, input simulators, and async
|
|
assertion utilities tailored to the project's architecture.
|
|
|
|
triggers:
|
|
- "ES"
|
|
- "e2e-scaffold"
|
|
- "scaffold e2e"
|
|
- "e2e infrastructure"
|
|
- "setup e2e"
|
|
|
|
preflight:
|
|
- "Test framework initialized (run `test-framework` workflow first)"
|
|
- "Game has identifiable state manager"
|
|
- "Main gameplay scene exists"
|
|
|
|
# Paths are relative to this workflow file's location
|
|
knowledge_fragments:
|
|
- "../../../gametest/knowledge/e2e-testing.md"
|
|
- "../../../gametest/knowledge/unity-testing.md"
|
|
- "../../../gametest/knowledge/unreal-testing.md"
|
|
- "../../../gametest/knowledge/godot-testing.md"
|
|
|
|
inputs:
|
|
game_state_class:
|
|
description: "Primary game state manager class name"
|
|
required: true
|
|
example: "GameStateManager"
|
|
|
|
main_scene:
|
|
description: "Scene name where core gameplay occurs"
|
|
required: true
|
|
example: "GameScene"
|
|
|
|
input_system:
|
|
description: "Input system in use"
|
|
required: false
|
|
default: "auto-detect"
|
|
options:
|
|
- "unity-input-system"
|
|
- "unity-legacy"
|
|
- "unreal-enhanced"
|
|
- "godot-input"
|
|
- "custom"
|
|
|
|
# Output paths vary by engine. Generate files matching detected engine.
|
|
outputs:
|
|
unity:
|
|
condition: "engine == 'unity'"
|
|
infrastructure_files:
|
|
description: "Generated E2E infrastructure classes"
|
|
files:
|
|
- "Tests/PlayMode/E2E/Infrastructure/GameE2ETestFixture.cs"
|
|
- "Tests/PlayMode/E2E/Infrastructure/ScenarioBuilder.cs"
|
|
- "Tests/PlayMode/E2E/Infrastructure/InputSimulator.cs"
|
|
- "Tests/PlayMode/E2E/Infrastructure/AsyncAssert.cs"
|
|
assembly_definition:
|
|
description: "E2E test assembly configuration"
|
|
files:
|
|
- "Tests/PlayMode/E2E/E2E.asmdef"
|
|
example_test:
|
|
description: "Working example E2E test"
|
|
files:
|
|
- "Tests/PlayMode/E2E/ExampleE2ETest.cs"
|
|
documentation:
|
|
description: "E2E testing README"
|
|
files:
|
|
- "Tests/PlayMode/E2E/README.md"
|
|
|
|
unreal:
|
|
condition: "engine == 'unreal'"
|
|
infrastructure_files:
|
|
description: "Generated E2E infrastructure classes"
|
|
files:
|
|
- "Source/{ProjectName}/Tests/E2E/GameE2ETestBase.h"
|
|
- "Source/{ProjectName}/Tests/E2E/GameE2ETestBase.cpp"
|
|
- "Source/{ProjectName}/Tests/E2E/ScenarioBuilder.h"
|
|
- "Source/{ProjectName}/Tests/E2E/ScenarioBuilder.cpp"
|
|
- "Source/{ProjectName}/Tests/E2E/InputSimulator.h"
|
|
- "Source/{ProjectName}/Tests/E2E/InputSimulator.cpp"
|
|
- "Source/{ProjectName}/Tests/E2E/AsyncAssert.h"
|
|
build_configuration:
|
|
description: "E2E test build configuration"
|
|
files:
|
|
- "Source/{ProjectName}/Tests/E2E/{ProjectName}E2ETests.Build.cs"
|
|
example_test:
|
|
description: "Working example E2E test"
|
|
files:
|
|
- "Source/{ProjectName}/Tests/E2E/ExampleE2ETest.cpp"
|
|
documentation:
|
|
description: "E2E testing README"
|
|
files:
|
|
- "Source/{ProjectName}/Tests/E2E/README.md"
|
|
|
|
godot:
|
|
condition: "engine == 'godot'"
|
|
infrastructure_files:
|
|
description: "Generated E2E infrastructure classes"
|
|
files:
|
|
- "tests/e2e/infrastructure/game_e2e_test_fixture.gd"
|
|
- "tests/e2e/infrastructure/scenario_builder.gd"
|
|
- "tests/e2e/infrastructure/input_simulator.gd"
|
|
- "tests/e2e/infrastructure/async_assert.gd"
|
|
example_test:
|
|
description: "Working example E2E test"
|
|
files:
|
|
- "tests/e2e/scenarios/example_e2e_test.gd"
|
|
documentation:
|
|
description: "E2E testing README"
|
|
files:
|
|
- "tests/e2e/README.md"
|
|
|
|
steps:
|
|
- id: analyze
|
|
name: "Analyze Game Architecture"
|
|
instruction_file: "instructions.md#step-1-analyze-game-architecture"
|
|
|
|
- id: scaffold
|
|
name: "Generate Infrastructure"
|
|
instruction_file: "instructions.md#step-2-generate-infrastructure"
|
|
|
|
- id: example
|
|
name: "Generate Example Test"
|
|
instruction_file: "instructions.md#step-3-generate-example-test"
|
|
|
|
- id: document
|
|
name: "Generate Documentation"
|
|
instruction_file: "instructions.md#step-4-generate-documentation"
|
|
|
|
- id: complete
|
|
name: "Output Summary"
|
|
instruction_file: "instructions.md#step-5-output-summary"
|
|
|
|
validation:
|
|
checklist: "checklist.md"
|