Einen einzelnen Test ausführen – nach Dateiname –
Eigentlich kann man auch einen einzigen Mocha-Test nach Dateiname ausführen (nicht nur durch „it()-String-Grepping“), wenn man das Glob-Muster (z.B. ./test/**/*.spec.js
) aus der mocha.opts entfernt bzw. eine Kopie erstellt ohne:
node_modules/.bin/mocha --opts test/mocha.single.opts test/self-test.spec.js
Hier ist meine mocha.single.opts (sie unterscheidet sich nur darin, dass die oben genannte Glob-Zeile fehlt)
--require ./test/common.js
--compilers js:babel-core/register
--reporter list
--recursive
Hintergrund: Obwohl man die verschiedenen Schalter aus der opts-Datei überschreiben kann (beginnend mit --
), kann man das Glob nicht überschreiben. Der Link enthält auch einige Erklärungen.
Hinweis: Wenn node_modules/.bin/mocha
Sie verwirrt, verwenden Sie das lokale Paket mocha. Sie können auch einfach mocha
schreiben, wenn Sie es global installiert haben.
Und wenn Sie die Annehmlichkeiten von package.json
möchten: Dennoch: Entfernen Sie das **/*
-ähnliche Glob aus Ihrer mocha.opts
, fügen Sie es hier ein, für das gesamte Testen, lassen Sie es für die Einzeltests weg:
"test": "mocha ./test/**/*.spec.js",
"test-watch": "mocha -R list -w ./test/**/*.spec.js",
"test-single": "mocha",
"test-single-watch": "mocha -R list -w",
Verwendung:
> npm run test
bzw.
> npm run test-single -- test/ES6.self-test.spec.js
achten Sie auf das --
, das alles nach ihm mit dem npm
-Skript verknüpft.