Implement test-runner PoC (#8)

This commit is contained in:
minsung
2026-04-07 15:21:03 +09:00
parent 836afea5ee
commit 96df2ef65d
12 changed files with 665 additions and 0 deletions

View File

@@ -0,0 +1,32 @@
# 2026-04-07 — test-runner Generator (Issue #8)
- 이슈: #8
- 작업: `Recordingtest.Runner` PoC 구현 (player + normalizer + diff-reporter 통합 파이프라인)
- 담당: Generator
- 소요 시간: 약 30분
- Context 사용량: 약 60k tokens
## 산출물
- `src/Recordingtest.Runner/` 콘솔 exe
- `RunnerOptions`, `RunReport`, `ScenarioResult`
- `INormalizer`, `IDiffer`, `IRunnerHostFactory` 어댑터 인터페이스
- `DefaultNormalizer`, `DefaultDiffer`, `DefaultHostFactory`
- `TestRunner` (`RunAll`, `WriteJsonReport`, `WriteMarkdownReport`, `ToExitCode`)
- `Program` (CLI: `--scenarios/--baselines/--out/--profile/--no-launch`)
- `tests/Recordingtest.Runner.Tests/` (xUnit, 6 tests, all green)
- `recordingtest.sln`에 두 프로젝트 추가
## 검증
- `dotnet build` green
- `dotnet test` 6/6 통과
- `Thread.Sleep` / `Task.Delay` 0건 (grep 확인)
- `report.json` 카멜케이스 + 스키마 테스트 포함
- Exit code: 0 = all pass, 1 = any fail, 2 = any error
## 메모
- 베이스라인은 사전 정규화되었다고 가정하지 않고, 매 실행 시 received와 동일 프로파일로 재정규화한다.
(TestRunner.cs 상단 주석 참조)
- `--no-launch` 의미는 player 책임이므로 runner는 옵션만 파싱해 보관한다.