Skip to content

Bun 은 Jest 와 유사한 expect API 를 갖춘 테스트 러너 를 내장하고 있습니다.


사용하려면 프로젝트 디렉터리에서 bun test 명령을 실행하세요. 테스트 러너는 디렉터리에서 다음 패턴과 일치하는 모든 파일을 재귀적으로 찾아 포함 된 테스트를 실행합니다.

txt
*.test.{js|jsx|ts|tsx}
*_test.{js|jsx|ts|tsx}
*.spec.{js|jsx|ts|tsx}
*_spec.{js|jsx|ts|tsx}

다음은 일반적인 테스트 실행 결과의 모습입니다. 이 경우 두 개의 테스트 (addmultiply) 를 포함하는 세 개의 테스트 파일 (test.test.js, test2.test.js, test3.test.js) 이 있습니다.

sh
bun test
txt

test.test.js:
✓ add [0.87ms]
✓ multiply [0.02ms]

test2.test.js:
✓ add [0.72ms]
✓ multiply [0.01ms]

test3.test.js:
✓ add [0.54ms]
✓ multiply [0.01ms]

6 pass
0 fail
6 expect() calls
Ran 6 tests across 3 files. [9.00ms]

특정 테스트 파일만 실행하려면 bun test 에 위치 인수를 전달하세요. 러너는 경로에 해당 인수가 포함된 파일만 실행합니다.

sh
bun test test3
txt

test3.test.js:
✓ add [1.40ms]
✓ multiply [0.03ms]

2 pass
0 fail
2 expect() calls
Ran 2 tests across 1 files. [15.00ms]

모든 테스트에는 test 함수의 첫 번째 매개변수로 정의된 이름이 있습니다. 테스트는 describe 를 사용하여 제품군으로 그룹화할 수도 있습니다.

ts
import { test, expect, describe } from "bun:test";

describe("math", () => {
  test("add", () => {
    expect(2 + 2).toEqual(4);
  });

  test("multiply", () => {
    expect(2 * 2).toEqual(4);
  });
});

이름으로 실행할 테스트를 필터링하려면 -t/--test-name-pattern 플래그를 사용하세요.

-t add 를 추가하면 이름에 "add"가 포함된 테스트만 실행됩니다. 이는 test 로 정의된 테스트 이름이나 describe 로 정의된 테스트 제품군 이름과 함께 작동합니다.

sh
bun test -t add
txt

test.test.js:
✓ add [1.79ms]
» multiply

test2.test.js:
✓ add [2.30ms]
» multiply

test3.test.js:
✓ add [0.32ms]
» multiply

3 pass
3 skip
0 fail
3 expect() calls
Ran 6 tests across 3 files. [59.00ms]

전체 문서는 문서 > 테스트 러너 를 참조하세요.

Bun by www.bunjs.com.cn 편집