Dans mon package npm, je voudrais émuler le modèle Meteor suivant: un fichier source (nommé client.js
) possède un fichier de test (nommé client.tests.js
) vivent dans un src/
dossier. Les tests s'exécutent avec le npm test
commande.
Je suis les documents d'utilisation au "t". Je ne veux pas utiliser un find
dans ma commande de test de package.
Je comprends que mocha peut exécuter récursivement des tests:
moka - récursif
Je comprends que mocha peut exécuter des tests dans un sous-dossier spécifique en utilisant le --recursive
drapeau:
mocha src - récursif
Je comprends également que je peux spécifier un glob pour filtrer les fichiers en passant *.tests.js
:
mocha * .tests.js
Mais, je veux les trois. Je veux que mocha teste uniquement les fichiers se terminant par tests.js
dans le dossier src, en vérifiant récursivement les sous-répertoires.
mocha --recursive *.tests.js
// See the files?
$ > ll ./src/app/
total 168
-rw-r--r-- ... client.js
-rw-r--r-- ... client.tests.js
// Option A
$ > mocha --recursive *.tests.js
Warning: Could not find any test files matching pattern: *.tests.js
No test files found
// Option B
$ > mocha *.tests.js --recursive
Warning: Could not find any test files matching pattern: *.tests.js
No test files found.
// Option C
$ > mocha --recursive src/app/*.tests.js
3 passing (130ms)
3 failing
Donc...
*.tests.js
fichiers dans les sous-dossiers?Le --recursive
flag est destiné à fonctionner sur les répertoires. Si vous deviez passer un glob qui correspond aux répertoires, alors ces répertoires seraient examinés récursivement mais si vous passez un glob qui correspond aux fichiers, comme vous le faites, alors --recursive
est inefficace. Je suggérerais de ne pas utiliser --recursive
avec un glob car les globs ont déjà la capacité de regarder récursivement dans les sous-répertoires. Vous pourriez faire:
mocha 'src/app/**/*.tests.js'
Cela correspondrait à tous les fichiers qui correspondent à *.tests.js
récursivement dans src/app
. Notez comment j'utilise des guillemets simples autour du motif. Il s'agit de citer le modèle afin qu'il soit transmis tel quel au code de globbing de Mocha. Sinon, votre Shell pourrait l'interpréter. Certains shells, selon les options, traduiront **
en *
et vous n'obtiendrez pas les résultats souhaités.