Skip to content

bun test 의 파일 검색 메커니즘은 어떤 파일을 테스트로 실행할지 결정합니다. 작동 방식을 이해하면 테스트 파일을 효과적으로 구성하는 데 도움이 됩니다.

기본 검색 로직

기본적으로 bun test 는 특정 패턴과 일치하는 파일을 찾기 위해 프로젝트 디렉토리를 재귀적으로 검색합니다.

  • *.test.{js|jsx|ts|tsx} - .test.js, .test.jsx, .test.ts 또는 .test.tsx 로 끝나는 파일
  • *_test.{js|jsx|ts|tsx} - _test.js, _test.jsx, _test.ts 또는 _test.tsx 로 끝나는 파일
  • *.spec.{js|jsx|ts|tsx} - .spec.js, .spec.jsx, .spec.ts 또는 .spec.tsx 로 끝나는 파일
  • *_spec.{js|jsx|ts|tsx} - _spec.js, _spec.jsx, _spec.ts 또는 _spec.tsx 로 끝나는 파일

제외

기본적으로 Bun test 는 다음을 무시합니다.

  • node_modules 디렉토리
  • 숨김 디렉토리 (마침표 . 로 시작하는 디렉토리)
  • JavaScript 유사 확장자가 없는 파일 (사용 가능한 로더에 기반)

테스트 검색 커스터마이징

필터로서의 위치 인수

bun test 에 추가 위치 인수를 전달하여 어떤 테스트 파일을 실행할지 필터링할 수 있습니다.

bash
bun test <filter> <filter> ...

필터 중 하나가 경로에 포함된 테스트 파일이 실행됩니다. 이러한 필터는 glob 패턴이 아닌 간단한 부분 문자열 일치입니다.

예를 들어 utils 디렉토리의 모든 테스트를 실행하려면.

bash
bun test utils

이는 src/utils/string.test.tslib/utils/array_test.js 와 같은 파일과 일치합니다.

정확한 파일 경로 지정

테스트 러너에서 특정 파일을 실행하려면 필터 이름과 구별하기 위해 경로가 ./ 또는 / 로 시작하는지 확인하세요.

bash
bun test ./test/specific-file.test.ts

테스트 이름으로 필터링

파일 경로가 아닌 이름으로 테스트를 필터링하려면 -t/--test-name-pattern 플래그를 regex 패턴과 함께 사용하세요.

sh
# 이름에 "addition" 이 포함된 모든 테스트 실행
bun test --test-name-pattern addition

이 패턴은 모든 부모 describe 블록의 레이블이 앞에 붙고 공백으로 구분된 테스트 이름의 연결된 문자열과 비교됩니다. 예를 들어 다음과 같이 정의된 테스트는.

ts
describe("Math", () => {
  describe("operations", () => {
    test("should add correctly", () => {
      // ...
    });
  });
});

"Math operations should add correctly" 문자열과 일치합니다.

루트 디렉토리 변경

기본적으로 Bun 은 현재 작업 디렉토리에서 테스트 파일을 찾습니다. bunfig.tomlroot 옵션으로 이를 변경할 수 있습니다.

toml
[test]
root = "src"  # src 디렉토리에서만 테스트 스캔

실행 순서

테스트는 다음 순서로 실행됩니다.

  1. 테스트 파일은 순차적으로 실행됩니다 (병렬이 아님)
  2. 각 파일 내에서 테스트는 정의 순서에 따라 순차적으로 실행됩니다

Bun by www.bunjs.com.cn 편집