실패 찾으려고 raw log 읽지 마
CI 의 기본 test 출력은 콘솔 텍스트 벽이야. 진짜 test 리포팅은 구조화된 데이터 — 뭐가 통과했고 뭐가 실패했고 각각 얼마나 걸렸고 어디서 깨졌는지 — 추출해서 PR 이나 run summary 에 올려.
두 layer
1) Test 결과 포맷
- JUnit XML — 범용.
pytest --junitxml=report.xml,vitest --reporter=junit등. - SARIF — 보안 스캐너용, PR review UI 에 표시.
- Cobertura / lcov — coverage 포맷.
2) Renderer
- GitHub Step Summary — 어떤 step 에서든
$GITHUB_STEP_SUMMARY에 markdown 추가. Run 페이지에 렌더. - PR Comment —
EnricoMi/publish-unit-test-result-action같은 third-party action 이 test run 요약 sticky 코멘트. - Coverage 배지 — Codecov 나 Coveralls 로 push; 그들의 action 도 PR 에 코멘트.
- Annotation — step 에서
::error file=foo.py,line=12::messageemit 하면 GitHub 가 PR diff 에 인라인 annotation 그려.