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 에 추가 위치 인수를 전달하여 어떤 테스트 파일을 실행할지 필터링할 수 있습니다.
bun test <filter> <filter> ...필터 중 하나가 경로에 포함된 테스트 파일이 실행됩니다. 이러한 필터는 glob 패턴이 아닌 간단한 부분 문자열 일치입니다.
예를 들어 utils 디렉토리의 모든 테스트를 실행하려면.
bun test utils이는 src/utils/string.test.ts 및 lib/utils/array_test.js 와 같은 파일과 일치합니다.
정확한 파일 경로 지정
테스트 러너에서 특정 파일을 실행하려면 필터 이름과 구별하기 위해 경로가 ./ 또는 / 로 시작하는지 확인하세요.
bun test ./test/specific-file.test.ts테스트 이름으로 필터링
파일 경로가 아닌 이름으로 테스트를 필터링하려면 -t/--test-name-pattern 플래그를 regex 패턴과 함께 사용하세요.
# 이름에 "addition" 이 포함된 모든 테스트 실행
bun test --test-name-pattern addition이 패턴은 모든 부모 describe 블록의 레이블이 앞에 붙고 공백으로 구분된 테스트 이름의 연결된 문자열과 비교됩니다. 예를 들어 다음과 같이 정의된 테스트는.
describe("Math", () => {
describe("operations", () => {
test("should add correctly", () => {
// ...
});
});
});"Math operations should add correctly" 문자열과 일치합니다.
루트 디렉토리 변경
기본적으로 Bun 은 현재 작업 디렉토리에서 테스트 파일을 찾습니다. bunfig.toml 의 root 옵션으로 이를 변경할 수 있습니다.
[test]
root = "src" # src 디렉토리에서만 테스트 스캔실행 순서
테스트는 다음 순서로 실행됩니다.
- 테스트 파일은 순차적으로 실행됩니다 (병렬이 아님)
- 각 파일 내에서 테스트는 정의 순서에 따라 순차적으로 실행됩니다