Skip to content

Bun ha un test runner integrato con un'API expect simile a Jest.


Per usarlo, esegui il comando bun test dalla directory del tuo progetto. Il test runner cercherà ricorsivamente tutti i file nella directory che corrispondono ai seguenti pattern ed eseguirà i test in essi contenuti.

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

Ecco come appare l'output di una tipica esecuzione di test. In questo caso, ci sono tre file di test (test.test.js, test2.test.js e test3.test.js) contenenti due test ciascuno (add e 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]

Per eseguire solo determinati file di test, passa un argomento posizionale a bun test. Il runner eseguirà solo i file che contengono quell'argomento nel loro percorso.

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]

Tutti i test hanno un nome, definito usando il primo parametro della funzione test. I test possono anche essere raggruppati in suite con describe.

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

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

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

Per filtrare quali test vengono eseguiti per nome, usa il flag -t/--test-name-pattern.

Aggiungendo -t addizione verranno eseguiti solo i test con "addizione" nel nome. Questo funziona con i nomi dei test definiti con test o i nomi delle suite di test definiti con describe.

sh
bun test -t addizione
txt
test.test.js:
✓ addizione [1.79ms]
» moltiplicazione

test2.test.js:
✓ addizione [2.30ms]
» moltiplicazione

test3.test.js:
✓ addizione [0.32ms]
» moltiplicazione

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

Vedi Docs > Test Runner per la documentazione completa sul test runner.

Bun a cura di www.bunjs.com.cn