Exécuter moka à l'exclusion des chemins
J'ai ceci (en gulpfile.js):
var gulp = require("gulp");
var mocha = require("gulp-mocha");
gulp.task("test", function() {
gulp
.src(["./**/*_test.js", "!./node_modules/**/*.js"]);
});
et il fonctionne.
Je veux reproduire le même comportement, à l'exclusion des "node_modules" dossier, de moka, de commande, l'exécution de mnp test (dans le paquet.json):
"scripts": {
"test": "mocha **\\*_test.js !./node_modules/**/*.js*",
}
et ça ne fonctionne pas.
Je suis à l'aide de Windows.
Toute suggestion?
OriginalL'auteur Alex 75 | 2015-12-15
Vous devez vous connecter pour publier un commentaire.
J'ai été en mesure de résoudre ce à l'aide d'expansion des modèles dans l'argument de
mocha
. Comme vous, je ne voulais pas mettre tous mes tests sous un seultests
dossier. Je voulais qu'ils soient dans le même répertoire que la classe qu'ils étaient en train de tester. Mon fichier de structure ressemblait à ceci:L'exécution de cette de la
project
dossier a fonctionné pour moi:Qui correspondent à aucune
*.test.js
fichier dans l'arborescence, c'est son chemin n'est pas ancrée à./node_modules/
.C'est un outil en ligne pour les tests glob modèles que j'ai trouvé utile.
Que faire si
node_modules
peut être n'importe où dans le chemin?OriginalL'auteur d512
Je ne suis pas un gourou sur le moka ou ant-style de motif, mais peut-être qu'il n'est pas possible hors chemin spécifique dans le moka ligne de commande.
Vous pouvez mettre tous vos fichiers de test, en vertu d'un dossier de test, et de définir votre colis.json comme ceci:
Vous pouvez également fournir plus d'un dossier de départ:
Avez-vous au moins de votre projet, dans son propre dossier? De cette façon, vous pourriez moka à
src/**/*_test.js
et de garder les fichiers de test à proximité de la source. Sauf vraiment de petits modules avec 1 seul fichier source, en mettant js fichiers dans un répertoire dédié commesrc
oulib
semble que la pratique courante.Ce serait la bonne réponse si la question était : Comment puis-je réorganiser l'ensemble de mon projet de structure d'exécuter seulement des tests?
OriginalL'auteur baudo2048
Pour les utilisateurs de Windows
Ce script sera exécuté parfaitement
J'espère que cela aidera.
cheers!
OriginalL'auteur Manvender Singh Rathore
J'ai eu un
spec
répertoire contenant tous mes spécifications. Dans ce répertoire, j'ai eu plusieurs sous-répertoires, dont l'un était lee2e
spécifications répertoire. Dans ce scénario, j'ai utilisé lemocha specs $(find specs -name '*.js' -not -path "specs/e2e/*")
commande à exécuter tous mes tests en ignorant ceux qui sont dans lee2e
répertoire.OriginalL'auteur Tomas Romero
Comme suggéré dans un commentaire de @thebearingedge, à la fin j'ai mis TOUS les fichiers source (avec les fichiers de test) dans un nouveau "src" dir.
De cette façon, je peux définir la racine pour les tests avec un chemin d'accès exclure par défaut, le "node_modules" le dossier.
J'ai eu à mettre à jour le chemin d'accès dans le package.json, gulpfile.js et dans certains fichiers de commandes que j'utilise que des services publics.
Changements dans gulpfile.js:
et dans paquet.json:
Changement Simple et ça fonctionne.
testfile.spec.js
et juste pour tous les fichiers qui se terminent par.spec.js
. Peut-être lui donner un tourbillon dans votre prochain projet!Pourquoi est-ce une honte? J'ai juste déplacé tous les fichiers source est un "src" le dossier. Je n'ai pas déplacé les fichiers de test, ils restent près de leur logique comme avant. Je n'ai pas à vous soucier de la convention de nommage de conflit trop (c'était pour "_test.js mais une autre fois peut être .spec.js). De cette façon, il est exclu de toute possibilité de conflit avec "node_modules" par défaut. La solution proposée (par @thebearingedge) a été simple et efficace.
OriginalL'auteur Alex 75
Vous pouvez exclure des fichiers à moka en passant opte
En outre, vous pouvez également créer un
test/mocha.opts
fichier et l'ajouter ilSi vous souhaitez exclure un type de fichier particulier, vous pourriez faire quelque chose comme ce
Ceci est utile lorsque les extensions de traitement avec un chargeur de module comme webpack que moka ne pas comprendre.
OriginalL'auteur lfender6445