2.0 KiB
2.0 KiB
2026-04-07 이슈 #7 — player Generator
작업 개요
Sprint Contract docs/contracts/player.md 기준으로 Recordingtest.Player 콘솔 PoC + xUnit 테스트 구현.
산출물
src/Recordingtest.Player/Recordingtest.Player.csproj(TFMnet8.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, 오류 0dotnet test: 6/6 통과Player_EmptyScenario_ExitsZeroPlayer_ClickStep_InvokesHostClickAtExpectedScreenPointPlayer_ResolveFailure_CapturesArtifactsPlayer_CheckpointStep_InvokesCapturePlayer_NoFixedSleep(PlayerEngine.cs 내Thread.Sleep(/Task.Delay(TimeSpan.FromSeconds0건)Player_ScenarioLoader_ParsesSampleYaml
미충족 / untestable DoD
- "동일 시나리오 10회 재생 시 9회 이상 성공" — 실제 SUT(EG-BIM Modeler) 기동이 PoC 샌드박스에서 금지되어 있어 단위 테스트로 검증 불가. Evaluator 가
partial/untestable로 표기해야 함. 통합 환경에서--no-launch후 외부 러너로 검증 필요. wait_forUIA 이벤트 매핑은 PoC 수준 (UiaPlayerHost 는 main window IsEnabled polling). 엔진 자체는 hint 문자열 그대로 host 에 위임하여 추후 확장 여지 있음.UiaPlayerHost.ResolveElement는 UIA path 의 마지막@AutomationId만 사용하는 단순 구현. 전체 path resolver 는 후속 작업.
소요 시간
약 15분
Context 사용량
약 30k tokens
관련 이슈
#7 (player PoC)