Skip to content

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.

txt
*.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).

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 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.

sh
bun test test3
txt
test3.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.

ts
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.

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 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.

Bun von www.bunjs.com.cn bearbeitet