javascript - sinon js




Comment exécuter un seul test avec Mocha? (5)

exécuter un seul test -par nom de fichier-

En fait, on peut aussi lancer un seul test de moka par nom de fichier (pas seulement par "it () - grepping de chaîne") si on supprime le pattern glob (par exemple ./test/**/*.spec.js ) de votre moka .opts, créent respectivement une copie, sans:

node_modules/.bin/mocha --opts test/mocha.single.opts test/self-test.spec.js

Voici mon mocha.single.opts (c'est seulement différent en manquant la ligne glob susmentionnée)

--require ./test/common.js
--compilers js:babel-core/register
--reporter list
--recursive

Arrière-plan: Bien que vous puissiez remplacer les différents commutateurs du fichier opts (en commençant par -- ), vous ne pouvez pas remplacer le glob . Ce lien a aussi quelques explications.

Astuce: si node_modules/.bin/mocha vous confond, utilisez le paquet local mocha. Vous pouvez également écrire juste mocha , si vous l'avez installé globalement.

Et si vous voulez le confort de package.json : Encore: supprimez le glob **/* -ish de votre mocha.opts , insérez-les ici, pour le tout-test, laissez-les pour le test unique:

"test": "mocha ./test/**/*.spec.js",
"test-watch": "mocha -R list -w ./test/**/*.spec.js",
"test-single": "mocha $1",
"test-single-watch": "mocha -R list -w $1",

usage:

> npm run test

respectivement

> npm run test-single -- test/ES6.self-test.spec.js 

(attention le -- !)

J'utilise Mocha pour tester mes trucs JavaScript. Mon fichier de test contient 5 tests. Est-ce possible d'exécuter un test spécifique (ou un ensemble de tests) plutôt que tous les tests du fichier?


En fonction de votre modèle d'utilisation, vous pouvez simplement utiliser uniquement . Nous utilisons le style TDD; ça ressemble à ceci:

test.only('Date part of valid Partition Key', function (done) {
    //...
}

Seul ce test sera exécuté à partir de tous les fichiers / suites.


Salut au-dessus des solutions n'a pas fonctionné pour moi. L'autre façon d'exécuter un seul test est

mocha test/cartcheckout/checkout.js -g 'Test Name Goes here'

Cela permet d'exécuter un scénario de test à partir d'un seul fichier et avec un nom spécifique.


Si vous utilisez le npm test (en utilisant les scripts package.json), utilisez un extra -- pour passer le param à moka

par exemple npm test -- --grep "my second test"

EDIT : On dirait que --grep peut être un peu difficile (probablement en fonction des autres arguments). Vous pouvez:

Modifiez le package.json:

"test:mocha": "mocha --grep \"<DealsList />\" .",

Ou alternativement utiliser --bail qui semble être moins difficile

npm test -- --bail

npm test <filepath>

par exemple :

npm test test/api/controllers/test.js

ici 'test / api / controllers / test.js' est filepath.





mocha