In meinem package.json
habe ich die folgenden;npm test unterscheidet sich von der manuellen Ausführung
"scripts": {
"test": "NODE_ENV=test mocha **/*.spec.js"
}
Wenn ich npm test
laufen sie abgeschlossen ist nur ein Test in meiner Unterverzeichnisse.
# npm test
sample test
✓ single task
1 passing
Aber wenn ich das Skript manuell in meiner Konsole ausführen, schließt es alle Tests ab.
# NODE_ENV=test mocha **/*.spec.js
sample test
✓ single task
sample test x2
✓ single task x1
✓ single task x2
✓ single task x3
✓ single task x4
✓ single task x5
sample test x3
✓ single task x1
✓ single task x2
✓ single task x3
✓ single task x4
✓ single task x5
✓ single task x6
sample test x4
✓ single task x1
✓ single task x2
✓ single task x3
✓ single task x4
16 passing (15s)
Warum gibt es einen Unterschied, wenn derselbe Befehl ausgeführt wird? und wie bekomme ich npm test
, um alle meine Tests durchzuführen?
Ist 'Mokka' in deinen' devDependencies'? Was passiert, wenn Sie die Befehle so ändern, dass sie sowohl in Ihrem Terminal als auch im Test-Skript einfach "mocha --version" sind? Unterscheiden sich die Versionen? Ich vermute, sie tun es. Möglicherweise ist einer von ihnen fehlerhaft. Um eine Aktualisierung der lokalen Kopie von 'mocha' zu erzwingen, vergewissern Sie sich, dass' devDependencies' die neueste Version hat, dann tun Sie 'rm -rf node_modules && npm Cache sauber && npm install' –
' mocha' Version ist die gleiche in beiden 'npm 'und manuell. '3.2.0'. Hatte bereits versucht, Mocha neu zu installieren. Ich habe es wieder mit deinen Befehlen gemacht, um sicher zu sein, dasselbe. Immer noch nur ein Testlauf. – sketchthat
Sind Sie zufällig auf Windows? Welches Terminalprogramm läuft und welche Shell (versuche 'echo $ 0')? Ist der 'NODE_ENV' wirklich wichtig für deinen Code? Wenn Sie diese Umgebungsvariable nicht richtig setzen oder exportieren, was würden Sie erwarten? Ich bin auch neugierig, was passieren wird, wenn Sie das Glob-Muster in etwas wie "NODE_ENV = test mocha test/*. Spec.js" (nicht-rekursive Datei-Wildcard) ändern. Es scheint etwas mit Globbing zu tun zu haben. –