bun test 는 리포터를 통해 다양한 출력 형식을 지원합니다. 이 문서에서는 내장 리포터와 커스텀 리포터 구현 방법을 모두 다룹니다.
내장 리포터
기본 콘솔 리포터
기본적으로 bun test 는 사람이 읽을 수 있는 형식으로 콘솔에 결과를 출력합니다.
test/package-json-lint.test.ts:
✓ test/package.json [0.88ms]
✓ test/js/third_party/grpc-js/package.json [0.18ms]
✓ test/js/third_party/svelte/package.json [0.21ms]
✓ test/js/third_party/express/package.json [1.05ms]
4 pass
0 fail
4 expect() calls
Ran 4 tests in 1.44ms터미널이 색상을 지원하지 않으면 출력은 비 ASCII 문자를 피합니다.
test/package-json-lint.test.ts:
(pass) test/package.json [0.48ms]
(pass) test/js/third_party/grpc-js/package.json [0.10ms]
(pass) test/js/third_party/svelte/package.json [0.04ms]
(pass) test/js/third_party/express/package.json [0.04ms]
4 pass
0 fail
4 expect() calls
Ran 4 tests across 1 files. [0.66ms]Dots 리포터
dots 리포터는 통과한 테스트에는 . 를, 실패한 테스트에는 F 를 표시합니다. 대규모 테스트 스위트에 유용합니다.
bun test --dots
bun test --reporter=dotsJUnit XML 리포터
CI/CD 환경을 위해 Bun 은 JUnit XML 리포트 생성을 지원합니다. JUnit XML 은 GitLab, Jenkins 등 많은 CI/CD 시스템에서 파싱할 수 있는 테스트 결과의 널리 채택된 형식입니다.
JUnit 리포터 사용
JUnit XML 리포트를 생성하려면 --reporter=junit 플래그와 --reporter-outfile 을 함께 사용하여 출력 파일을 지정하세요.
bun test --reporter=junit --reporter-outfile=./junit.xml이것은 평소와 같이 콘솔에 계속 출력하면서 테스트 실행이 끝날 때 지정된 경로에 JUnit XML 리포트를 씁니다.
bunfig.toml 로 구성
bunfig.toml 파일에서 JUnit 리포터를 구성할 수도 있습니다.
[test.reporter]
junit = "path/to/junit.xml" # JUnit XML 리포트 출력 경로JUnit 리포트의 환경 변수
JUnit 리포터는 자동으로 환경 정보를 XML 출력의 <properties> 로 포함합니다. 이는 CI 환경에서 테스트 실행을 추적하는 데 도움이 될 수 있습니다.
특히 사용 가능한 경우 다음 환경 변수를 포함합니다.
| 환경 변수 | 속성 이름 | 설명 |
|---|---|---|
GITHUB_RUN_ID, GITHUB_SERVER_URL, GITHUB_REPOSITORY, CI_JOB_URL | ci | CI 빌드 정보 |
GITHUB_SHA, CI_COMMIT_SHA, GIT_SHA | commit | Git 커밋 식별자 |
| 시스템 호스트명 | hostname | 머신 호스트명 |
이를 통해 특정 테스트 실행이 어떤 환경과 커밋에 대한 것인지 추적하기 쉽습니다.
현재 제한사항
JUnit 리포터는 현재 몇 가지 제한사항이 있으며 향후 업데이트에서 해결될 예정입니다.
- 개별 테스트의
stdout및stderr출력이 리포트에 포함되지 않습니다 - 테스트 케이스별 정밀 타임스탬프 필드가 포함되지 않습니다
GitHub Actions 리포터
Bun test 는 GitHub Actions 내에서 실행 중일 때 자동으로 감지하고 GitHub Actions 주석을 콘솔에 직접 출력합니다. Bun 을 설치하고 bun test 를 실행하는 것 외에 특별한 구성이 필요하지 않습니다.
GitHub Actions 워크플로우 구성 예시는 CLI 문서의 CI/CD 통합 섹션을 참조하세요.
커스텀 리포터
Bun 은 개발자가 WebKit Inspector Protocol 을 테스트 관련 도메인으로 확장하여 커스텀 테스트 리포터를 구현할 수 있도록 합니다.
테스트용 Inspector Protocol
테스트 리포팅을 지원하기 위해 Bun 은 표준 WebKit Inspector Protocol 을 두 개의 커스텀 도메인으로 확장합니다.
- TestReporter: 테스트 검색, 실행 시작 및 완료 이벤트 리포트
- LifecycleReporter: 테스트 실행 중 오류 및 예외 리포트
이러한 확장을 통해 테스트 실행에 대한 상세한 정보를 실시간으로 받을 수 있는 커스텀 리포팅 도구를 구축할 수 있습니다.
주요 이벤트
커스텀 리포터는 다음 주요 이벤트를 수신할 수 있습니다.
TestReporter.found: 테스트가 검색될 때 발생TestReporter.start: 테스트가 실행 시작될 때 발생TestReporter.end: 테스트가 완료될 때 발생Console.messageAdded: 테스트 중 콘솔 출력이 발생할 때 발생LifecycleReporter.error: 오류나 예외가 발생할 때 발생