Il meccanismo di scoperta dei file di bun test determina quali file eseguire come test. Capire come funziona ti aiuta a strutturare i tuoi file di test in modo efficace.
Logica di Scoperta Predefinita
Di default, bun test cerca ricorsivamente nella directory del progetto i file che corrispondono a pattern specifici:
*.test.{js|jsx|ts|tsx}- File che terminano con.test.js,.test.jsx,.test.tso.test.tsx*_test.{js|jsx|ts|tsx}- File che terminano con_test.js,_test.jsx,_test.tso_test.tsx*.spec.{js|jsx|ts|tsx}- File che terminano con.spec.js,.spec.jsx,.spec.tso.spec.tsx*_spec.{js|jsx|ts|tsx}- File che terminano con_spec.js,_spec.jsx,_spec.tso_spec.tsx
Esclusioni
Di default, Bun test ignora:
- Directory
node_modules - Directory nascoste (quelle che iniziano con un punto
.) - File che non hanno estensioni JavaScript-like (basati sui loader disponibili)
Personalizzare la Scoperta dei Test
Argomenti Posizionali come Filtri
Puoi filtrare quali file di test eseguire passando argomenti posizionali aggiuntivi a bun test:
bun test <filtro> <filtro> ...Qualsiasi file di test con un percorso che contiene uno dei filtri sara eseguito. Questi filtri sono semplici corrispondenze di sottostringhe, non pattern glob.
Ad esempio, per eseguire tutti i test in una directory utils:
bun test utilsQuesto corrisponderebbe a file come src/utils/string.test.ts e lib/utils/array_test.js.
Specificare Percorsi File Esatti
Per eseguire un file specifico nel test runner, assicurati che il percorso inizi con ./ o / per distinguerlo da un nome di filtro:
bun test ./test/specific-file.test.tsFiltrare per Nome del Test
Per filtrare i test per nome piuttosto che per percorso file, usa il flag -t/--test-name-pattern con un pattern regex:
# esegui tutti i test con "addition" nel nome
bun test --test-name-pattern additionIl pattern viene confrontato con una stringa concatenata del nome del test preceduto dalle etichette di tutti i suoi blocchi describe padre, separate da spazi. Ad esempio, un test definito come:
describe("Math", () => {
describe("operations", () => {
test("dovrebbe sommare correttamente", () => {
// ...
});
});
});Sarebbe confrontato con la stringa "Math operations dovrebbe sommare correttamente".
Cambiare la Directory Root
Di default, Bun cerca i file di test a partire dalla directory di lavoro corrente. Puoi cambiare questo con l'opzione root nel tuo bunfig.toml:
[test]
root = "src" # Scansiona solo i test nella directory srcOrdine di Esecuzione
I test vengono eseguiti nel seguente ordine:
- I file di test vengono eseguiti sequenzialmente (non in parallelo)
- All'interno di ogni file, i test vengono eseguiti sequenzialmente in base al loro ordine di definizione