Skip to content

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.ts ou .test.tsx
  • *_test.{js|jsx|ts|tsx} - Fichiers se terminant par _test.js, _test.jsx, _test.ts ou _test.tsx
  • *.spec.{js|jsx|ts|tsx} - Fichiers se terminant par .spec.js, .spec.jsx, .spec.ts ou .spec.tsx
  • *_spec.{js|jsx|ts|tsx} - Fichiers se terminant par _spec.js, _spec.jsx, _spec.ts ou _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 :

bash
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 :

bash
bun test utils

Cela 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 :

bash
bun test ./test/specific-file.test.ts

Filtrer 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 :

sh
# exécuter tous les tests avec "addition" dans le nom
bun test --test-name-pattern addition

Le 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 :

math.test.ts
ts
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 :

bunfig.toml
toml
[test]
root = "src"  # Balayer uniquement les tests dans le répertoire src

Ordre d'exécution ​

Les tests sont exécutés dans l'ordre suivant :

  1. Les fichiers de test sont exécutés séquentiellement (pas en parallèle)
  2. Dans chaque fichier, les tests s'exécutent séquentiellement selon leur ordre de définition

Bun édité par www.bunjs.com.cn