Bun dispose d'un test runner intégré avec une API expect similaire à Jest.
Pour l'utiliser, exécutez la commande bun test depuis le répertoire de votre projet. Le runner de tests recherchera récursivement tous les fichiers du répertoire qui correspondent aux motifs suivants et exécutera les tests qu'ils contiennent.
*.test.{js|jsx|ts|tsx}
*_test.{js|jsx|ts|tsx}
*.spec.{js|jsx|ts|tsx}
*_spec.{js|jsx|ts|tsx}Voici à quoi ressemble la sortie d'une exécution de tests typique. Dans ce cas, il y a trois fichiers de tests (test.test.js, test2.test.js et test3.test.js) contenant deux tests chacun (add et multiply).
bun testtest.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]Pour exécuter uniquement certains fichiers de tests, passez un argument positionnel à bun test. Le runner exécutera uniquement les fichiers qui contiennent cet argument dans leur chemin.
bun test test3test3.test.js:
✓ add [1.40ms]
✓ multiply [0.03ms]
2 pass
0 fail
2 expect() calls
Ran 2 tests across 1 files. [15.00ms]Tous les tests ont un nom, défini à l'aide du premier paramètre de la fonction test. Les tests peuvent également être regroupés en suites avec describe.
import { test, expect, describe } from "bun:test";
describe("math", () => {
test("add", () => {
expect(2 + 2).toEqual(4);
});
test("multiply", () => {
expect(2 * 2).toEqual(4);
});
});Pour filtrer les tests exécutés par nom, utilisez l'option -t/--test-name-pattern.
L'ajout de -t add exécutera uniquement les tests avec "add" dans le nom. Cela fonctionne avec les noms de tests définis avec test ou les noms de suites de tests définis avec describe.
bun test -t addtest.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]Consultez Docs > Test Runner pour la documentation complète sur le runner de tests.