Le mécanisme de découverte de fichiers de bun test détermine quels fichiers exécuter en tant que tests. Comprendre son fonctionnement vous aide à structurer efficacement vos fichiers de test.
Logique de découverte par défaut
Par défaut, bun test recherche récursivement dans le répertoire du projet les fichiers qui correspondent à des motifs spécifiques :
*.test.{js|jsx|ts|tsx}- Fichiers se terminant par.test.js,.test.jsx,.test.tsou.test.tsx*_test.{js|jsx|ts|tsx}- Fichiers se terminant par_test.js,_test.jsx,_test.tsou_test.tsx*.spec.{js|jsx|ts|tsx}- Fichiers se terminant par.spec.js,.spec.jsx,.spec.tsou.spec.tsx*_spec.{js|jsx|ts|tsx}- Fichiers se terminant par_spec.js,_spec.jsx,_spec.tsou_spec.tsx
Exclusions
Par défaut, Bun test ignore :
- Les répertoires
node_modules - Les répertoires cachés (ceux commençant par un point
.) - Les fichiers qui n'ont pas d'extensions de type JavaScript (basé sur les loaders disponibles)
Personnaliser la découverte des tests
Arguments de position comme filtres
Vous pouvez filtrer les fichiers de test à exécuter en passant des arguments de position supplémentaires à bun test :
bun test <filtre> <filtre> ...Tout fichier de test dont le chemin contient l'un des filtres sera exécuté. Ces filtres sont de simples correspondances de sous-chaînes, pas des motifs glob.
Par exemple, pour exécuter tous les tests dans un répertoire utils :
bun test utilsCela correspondrait à des fichiers comme src/utils/string.test.ts et lib/utils/array_test.js.
Spécifier des chemins de fichiers exacts
Pour exécuter un fichier spécifique dans le runner de test, assurez-vous que le chemin commence par ./ ou / pour le distinguer d'un nom de filtre :
bun test ./test/specific-file.test.tsFiltrer par nom de test
Pour filtrer les tests par nom plutôt que par chemin de fichier, utilisez le drapeau -t/--test-name-pattern avec un motif regex :
# exécuter tous les tests avec "addition" dans le nom
bun test --test-name-pattern additionLe motif est comparé à une chaîne concaténée du nom du test précédé des étiquettes de tous ses blocs describe parents, séparés par des espaces. Par exemple, un test défini comme :
describe("Math", () => {
describe("operations", () => {
test("should add correctly", () => {
// ...
});
});
});Serait comparé à la chaîne "Math operations should add correctly".
Changer le répertoire racine
Par défaut, Bun recherche les fichiers de test à partir du répertoire de travail actuel. Vous pouvez changer cela avec l'option root dans votre bunfig.toml :
[test]
root = "src" # Balayer uniquement les tests dans le répertoire srcOrdre d'exécution
Les tests sont exécutés dans l'ordre suivant :
- Les fichiers de test sont exécutés séquentiellement (pas en parallèle)
- Dans chaque fichier, les tests s'exécutent séquentiellement selon leur ordre de définition