Skip to content

Bun имеет встроенный тестовый раннер с похожим на Jest API expect.


Для использования выполните команду bun test из каталога вашего проекта. Тестовый раннер рекурсивно найдёт все файлы в каталоге, соответствующие следующим шаблонам, и выполнит содержащиеся в них тесты.

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

Вот как выглядит вывод типичного запуска тестов. В этом случае есть три тестовых файла (test.test.js, test2.test.js и test3.test.js), каждый из которых содержит по два теста (add и multiply).

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("математика", () => {
  test("сложение", () => {
    expect(2 + 2).toEqual(4);
  });

  test("умножение", () => {
    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 от www.bunjs.com.cn