El mecanismo de descubrimiento de archivos de bun test determina qué archivos ejecutar como pruebas. Entender cómo funciona te ayuda a estructurar tus archivos de prueba efectivamente.
Lógica de descubrimiento por defecto
Por defecto, bun test busca recursivamente en el directorio del proyecto archivos que coincidan con patrones específicos:
*.test.{js|jsx|ts|tsx}- Archivos que terminan con.test.js,.test.jsx,.test.tso.test.tsx*_test.{js|jsx|ts|tsx}- Archivos que terminan con_test.js,_test.jsx,_test.tso_test.tsx*.spec.{js|jsx|ts|tsx}- Archivos que terminan con.spec.js,.spec.jsx,.spec.tso.spec.tsx*_spec.{js|jsx|ts|tsx}- Archivos que terminan con_spec.js,_spec.jsx,_spec.tso_spec.tsx
Exclusiones
Por defecto, Bun test ignora:
- Directorios
node_modules - Directorios ocultos (los que comienzan con un punto
.) - Archivos que no tienen extensiones tipo JavaScript (basado en los loaders disponibles)
Personalizar descubrimiento de pruebas
Argumentos de posición como filtros
Puedes filtrar qué archivos de prueba se ejecutan pasando argumentos de posición adicionales a bun test:
bun test <filtro> <filtro> ...Cualquier archivo de prueba con una ruta que contenga uno de los filtros se ejecutará. Estos filtros son coincidencias de subcadena simples, no patrones glob.
Por ejemplo, para ejecutar todas las pruebas en un directorio utils:
bun test utilsEsto coincidiría con archivos como src/utils/string.test.ts y lib/utils/array_test.js.
Especificar rutas de archivo exactas
Para ejecutar un archivo específico en el ejecutor de pruebas, asegúrate de que la ruta comience con ./ o / para distinguirlo de un nombre de filtro:
bun test ./test/specific-file.test.tsFiltrar por nombre de prueba
Para filtrar pruebas por nombre en lugar de ruta de archivo, usa la bandera -t/--test-name-pattern con un patrón regex:
# ejecutar todas las pruebas con "adición" en el nombre
bun test --test-name-pattern adiciónEl patrón se compara con una cadena concatenada del nombre de la prueba precedida por las etiquetas de todos sus bloques describe padre, separados por espacios. Por ejemplo, una prueba definida como:
describe("Matemáticas", () => {
describe("operaciones", () => {
test("debería sumar correctamente", () => {
// ...
});
});
});Se compararía con la cadena "Matemáticas operaciones debería sumar correctamente".
Cambiar el directorio raíz
Por defecto, Bun busca archivos de prueba comenzando desde el directorio de trabajo actual. Puedes cambiar esto con la opción root en tu bunfig.toml:
[test]
root = "src" # Solo escanear pruebas en el directorio srcOrden de ejecución
Las pruebas se ejecutan en el siguiente orden:
- Los archivos de prueba se ejecutan secuencialmente (no en paralelo)
- Dentro de cada archivo, las pruebas se ejecutan secuencialmente basándose en su orden de definición