Implement player PoC (#7)
This commit is contained in:
40
docs/history/2026-04-07_이슈7-player-generator.md
Normal file
40
docs/history/2026-04-07_이슈7-player-generator.md
Normal file
@@ -0,0 +1,40 @@
|
||||
# 2026-04-07 이슈 #7 — player Generator
|
||||
|
||||
## 작업 개요
|
||||
Sprint Contract `docs/contracts/player.md` 기준으로 `Recordingtest.Player` 콘솔 PoC + xUnit 테스트 구현.
|
||||
|
||||
## 산출물
|
||||
- `src/Recordingtest.Player/`
|
||||
- `Recordingtest.Player.csproj` (TFM `net8.0-windows`, FlaUI.Core/UIA3 4.0.0, YamlDotNet 16.1.3)
|
||||
- `Model/Scenario.cs`, `Model/Step.cs` (recorder 스키마와 동일 형상; 임시로 Player 내부에 위치)
|
||||
- `ScenarioLoader.cs` (YamlDotNet, snake_case)
|
||||
- `IPlayerHost.cs` (UIA/입력 추상화)
|
||||
- `PlayerEngine.cs` (스텝 루프; 고정 sleep 없음, 예외 시 `CaptureFailureArtifacts` 후 재던짐)
|
||||
- `UiaPlayerHost.cs` (FlaUI 실제 구현, 컴파일 전용)
|
||||
- `Program.cs` (CLI: `--scenario --output-dir --no-launch`)
|
||||
- `tests/Recordingtest.Player.Tests/` (FakePlayerHost + 6개 테스트)
|
||||
- `recordingtest.sln` 에 두 프로젝트 등록
|
||||
|
||||
## 결과
|
||||
- `dotnet build recordingtest.sln`: 경고 0, 오류 0
|
||||
- `dotnet test`: 6/6 통과
|
||||
- `Player_EmptyScenario_ExitsZero`
|
||||
- `Player_ClickStep_InvokesHostClickAtExpectedScreenPoint`
|
||||
- `Player_ResolveFailure_CapturesArtifacts`
|
||||
- `Player_CheckpointStep_InvokesCapture`
|
||||
- `Player_NoFixedSleep` (PlayerEngine.cs 내 `Thread.Sleep(` / `Task.Delay(TimeSpan.FromSeconds` 0건)
|
||||
- `Player_ScenarioLoader_ParsesSampleYaml`
|
||||
|
||||
## 미충족 / untestable DoD
|
||||
- **"동일 시나리오 10회 재생 시 9회 이상 성공"** — 실제 SUT(EG-BIM Modeler) 기동이 PoC 샌드박스에서 금지되어 있어 단위 테스트로 검증 불가. Evaluator 가 `partial`/`untestable` 로 표기해야 함. 통합 환경에서 `--no-launch` 후 외부 러너로 검증 필요.
|
||||
- `wait_for` UIA 이벤트 매핑은 PoC 수준 (UiaPlayerHost 는 main window IsEnabled polling). 엔진 자체는 hint 문자열 그대로 host 에 위임하여 추후 확장 여지 있음.
|
||||
- `UiaPlayerHost.ResolveElement` 는 UIA path 의 마지막 `@AutomationId` 만 사용하는 단순 구현. 전체 path resolver 는 후속 작업.
|
||||
|
||||
## 소요 시간
|
||||
약 15분
|
||||
|
||||
## Context 사용량
|
||||
약 30k tokens
|
||||
|
||||
## 관련 이슈
|
||||
#7 (player PoC)
|
||||
Reference in New Issue
Block a user