Bun verfügt über einen integrierten Testrunner mit einer Jest-ähnlichen expect-API.
Um ihn zu verwenden, führen Sie den Befehl bun test aus Ihrem Projektverzeichnis aus. Der Testrunner sucht rekursiv nach allen Dateien im Verzeichnis, die den folgenden Mustern entsprechen, und führt die darin enthaltenen Tests aus.
*.test.{js|jsx|ts|tsx}
*_test.{js|jsx|ts|tsx}
*.spec.{js|jsx|ts|tsx}
*_spec.{js|jsx|ts|tsx}So sieht die Ausgabe eines typischen Testlaufs aus. In diesem Fall gibt es drei Testdateien (test.test.js, test2.test.js und test3.test.js) mit jeweils zwei Tests (add und multiply).
bun test
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 bestanden
0 fehlgeschlagen
6 expect()-Aufrufe
6 Tests in 3 Dateien ausgeführt. [9.00ms]Um nur bestimmte Testdateien auszuführen, übergeben Sie ein positionsabhängiges Argument an bun test. Der Runner führt nur Dateien aus, die dieses Argument in ihrem Pfad enthalten.
bun test test3test3.test.js:
✓ add [1.40ms]
✓ multiply [0.03ms]
2 bestanden
0 fehlgeschlagen
2 expect()-Aufrufe
2 Tests in 1 Datei ausgeführt. [15.00ms]Alle Tests haben einen Namen, der mit dem ersten Parameter der test-Funktion definiert wird. Tests können auch mit describe in Suites gruppiert werden.
import { test, expect, describe } from "bun:test";
describe("math", () => {
test("add", () => {
expect(2 + 2).toEqual(4);
});
test("multiply", () => {
expect(2 * 2).toEqual(4);
});
});Um zu filtern, welche Tests nach Namen ausgeführt werden, verwenden Sie das -t/--test-name-pattern-Flag.
Das Hinzufügen von -t add führt nur Tests mit "add" im Namen aus. Dies funktioniert mit Testnamen, die mit test definiert wurden, oder Test-Suite-Namen, die mit describe definiert wurden.
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 bestanden
3 übersprungen
0 fehlgeschlagen
3 expect()-Aufrufe
6 Tests in 3 Dateien ausgeführt. [59.00ms]Siehe Docs > Test Runner für die vollständige Dokumentation des Testrunners.