test-runner PoC (5-module integration pipeline) #8

Closed
opened 2026-04-07 15:17:07 +09:00 by kimminsung · 1 comment
Owner

목표

Sprint Contract: docs/contracts/test-runner.md

sut-prober / normalizer / player / diff-reporter 를 엮어 시나리오 일괄 회귀 파이프라인을 구현.

범위

  • Recordingtest.Runner 콘솔 — --scenarios --baselines --out --profile --no-launch
  • player → normalizer → diff-reporter 순서, <out>/report.{json,md} 생성
  • IPlayerHost DI로 fake 주입, xUnit 테스트 ≥ 5
  • Exit code 0/1/2, 고정 sleep 금지

사이클

  1. Generator 세션
  2. Evaluator 세션 → /evaluate test-runner

Related: #2, #3, #4, #5, #6, #7

## 목표 Sprint Contract: `docs/contracts/test-runner.md` sut-prober / normalizer / player / diff-reporter 를 엮어 시나리오 일괄 회귀 파이프라인을 구현. ## 범위 - `Recordingtest.Runner` 콘솔 — `--scenarios --baselines --out --profile --no-launch` - player → normalizer → diff-reporter 순서, `<out>/report.{json,md}` 생성 - `IPlayerHost` DI로 fake 주입, xUnit 테스트 ≥ 5 - Exit code 0/1/2, 고정 sleep 금지 ## 사이클 1. Generator 세션 2. Evaluator 세션 → `/evaluate test-runner` Related: #2, #3, #4, #5, #6, #7
Author
Owner

test-runner PoC — Verdict: pass

Generator (96df2ef)

  • Recordingtest.Runner + Recordingtest.Runner.Tests
  • INormalizer/IDiffer/IRunnerHostFactory DI 인터페이스 → fake 주입 가능
  • player → normalizer → diff-reporter 순서로 파이프라인, report.{json,md} 생성
  • 6/6 tests pass, build 0 warn / 0 err, Thread.Sleep 0건

Evaluator DoD

# DoD item Score
1 CLI --scenarios --baselines --out --profile --no-launch pass
2 시나리오 디렉터리 스캔 + per-scenario artifactDir pass
3 실행 순서 player → normalizer → diff pass
4 Profile default + override pass
5 report.json 스키마 {runAt, total, passed, failed, errored, scenarios[]} pass
6 report.md 표 + 실패 섹션 pass
7 Exit 0 / 1 / 2 pass
8 IPlayerHost DI (IRunnerHostFactory) pass
9 xUnit 테스트 ≥5 (실제 6개, 스텁 아님) pass
10 Build green + tests pass pass
11 고정 sleep 0건 pass

1회 사이클로 pass — 재작업 없음. 5개 PoC 모듈이 E2E 파이프라인으로 결합.

비용

단계 Tokens
Generator (test-runner) ~66k
Evaluator ~31k
Orchestrator 분담 ~15k
합계 ~112k

다음 단계

P1: 라이브 SUT smoke test (사용자 환경 필요), engine-bridge 탐색.

closing.

## test-runner PoC — Verdict: **pass** ✅ ### Generator (`96df2ef`) - `Recordingtest.Runner` + `Recordingtest.Runner.Tests` - `INormalizer`/`IDiffer`/`IRunnerHostFactory` DI 인터페이스 → fake 주입 가능 - player → normalizer → diff-reporter 순서로 파이프라인, `report.{json,md}` 생성 - 6/6 tests pass, build 0 warn / 0 err, `Thread.Sleep` 0건 ### Evaluator DoD | # | DoD item | Score | |---|----------|-------| | 1 | CLI `--scenarios --baselines --out --profile --no-launch` | pass | | 2 | 시나리오 디렉터리 스캔 + per-scenario artifactDir | pass | | 3 | 실행 순서 player → normalizer → diff | pass | | 4 | Profile default + override | pass | | 5 | `report.json` 스키마 `{runAt, total, passed, failed, errored, scenarios[]}` | pass | | 6 | `report.md` 표 + 실패 섹션 | pass | | 7 | Exit 0 / 1 / 2 | pass | | 8 | `IPlayerHost` DI (IRunnerHostFactory) | pass | | 9 | xUnit 테스트 ≥5 (실제 6개, 스텁 아님) | pass | | 10 | Build green + tests pass | pass | | 11 | 고정 sleep 0건 | pass | **1회 사이클로 pass** — 재작업 없음. 5개 PoC 모듈이 E2E 파이프라인으로 결합. ### 비용 | 단계 | Tokens | |------|--------| | Generator (test-runner) | ~66k | | Evaluator | ~31k | | Orchestrator 분담 | ~15k | | **합계** | **~112k** | ### 다음 단계 P1: 라이브 SUT smoke test (사용자 환경 필요), engine-bridge 탐색. closing.
Sign in to join this conversation.
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: kimminsung/recordingtest#8