O mecanismo de descoberta de arquivos do bun test determina quais arquivos executar como testes. Entender como funciona ajuda você a estruturar seus arquivos de teste de forma eficaz.
Lógica de Descoberta Padrão
Por padrão, bun test pesquisa recursivamente o diretório do projeto por arquivos que correspondem a padrões específicos:
*.test.{js|jsx|ts|tsx}- Arquivos terminando com.test.js,.test.jsx,.test.tsou.test.tsx*_test.{js|jsx|ts|tsx}- Arquivos terminando com_test.js,_test.jsx,_test.tsou_test.tsx*.spec.{js|jsx|ts|tsx}- Arquivos terminando com.spec.js,.spec.jsx,.spec.tsou.spec.tsx*_spec.{js|jsx|ts|tsx}- Arquivos terminando com_spec.js,_spec.jsx,_spec.tsou_spec.tsx
Exclusões
Por padrão, o teste do Bun ignora:
- Diretórios
node_modules - Diretórios ocultos (aqueles começando com um ponto
.) - Arquivos que não têm extensões semelhantes a JavaScript (com base nos loaders disponíveis)
Personalizando a Descoberta de Testes
Argumentos de Posição como Filtros
Você pode filtrar quais arquivos de teste são executados passando argumentos posicionais adicionais para bun test:
bun test <filtro> <filtro> ...Qualquer arquivo de teste com um caminho que contenha um dos filtros será executado. Estes filtros são correspondências de substring simples, não padrões glob.
Por exemplo, para executar todos os testes em um diretório utils:
bun test utilsIsso corresponderia a arquivos como src/utils/string.test.ts e lib/utils/array_test.js.
Especificando Caminhos de Arquivo Exatos
Para executar um arquivo específico no executor de teste, certifique-se de que o caminho começa com ./ ou / para distingui-lo de um nome de filtro:
bun test ./test/specific-file.test.tsFiltrar por Nome de Teste
Para filtrar testes por nome em vez de caminho de arquivo, use a flag -t/--test-name-pattern com um padrão regex:
# executar todos os testes com "adição" no nome
bun test --test-name-pattern adicaoO padrão é comparado com uma string concatenada do nome do teste precedido pelos rótulos de todos os seus blocos describe pai, separados por espaços. Por exemplo, um teste definido como:
describe("Matemática", () => {
describe("operações", () => {
test("deve somar corretamente", () => {
// ...
});
});
});Seria comparado com a string "Matemática operações deve somar corretamente".
Alterando o Diretório Raiz
Por padrão, o Bun procura arquivos de teste a partir do diretório de trabalho atual. Você pode alterar isso com a opção root no seu bunfig.toml:
[test]
root = "src" # Apenas varrer por testes no diretório srcOrdem de Execução
Os testes são executados na seguinte ordem:
- Arquivos de teste são executados sequencialmente (não em paralelo)
- Dentro de cada arquivo, os testes são executados sequencialmente com base na ordem de definição