Wie kann mocha rekursiv suchen in meiner " src " - Ordner für einen bestimmten Dateinamen-Muster?
In meinem npm-Paket, ich möchte zu emulieren, die Muster Meteor folgt: eine Quell-Datei (mit dem Namen client.js
) hat eine test-Datei (mit dem Namen client.tests.js
) Leben in einem src/
Ordner. Tests mit der npm test
Befehl.
Ich bin nach der Nutzung docs auf 't'. Ich will nicht verwenden ein find
in meinem Paket test-Befehl.
-
Verstehe ich, dass der Mokka kann rekursiv ausführen von tests:
mocha --recursive
-
Ich verstehen, dass mocha können die Durchführung der tests in einem bestimmten Unterordner mit der
--recursive
Flagge:Mokka src --recursive
-
Ich auch verstehen, dass ich geben Sie einen Klumpen filtern von Dateien durch übergabe
*.tests.js
:Mokka *.tests.js
Aber, ich möchte alle drei. Ich will mocha testen nur Dateien mit der Endung tests.js
im src-Ordner, rekursiv prüfen Unterverzeichnisse.
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
So...
- Warum ist der Mokka nicht Kommissionierung bis die
*.tests.js
Dateien in den Unterordnern? - Warum funktioniert es, wenn ich geben Sie den vollständigen Pfad zu der Datei?
- Wie kann ich machen, damit es funktioniert wie gewünscht?
- haben Sie versucht, mit diesem glob:
src/app/**/*.tests.js
? - In der Tat habe ich nicht. Für meine eigene Referenz, wo finde ich das glob-syntax dokumentiert? Ich drehte ein paar Steine, bevor polling SO. Neugierig. Thx.
- finden Sie mehr info über das glob-syntax in der README des glob Paket-repository. Das ist das Paket von Mokka.
- Oh. Meine. GLOB. LoLz
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den
--recursive
Flagge gemeint ist für den Betrieb auf Verzeichnisse. Wenn Sie übergeben ein glob entspricht, Verzeichnisse, dann werden diese Verzeichnisse geprüft werden würden, die rekursiv, aber wenn Sie einen Klumpen, die Spiele-Dateien, wie Sie tun, dann--recursive
ist unwirksam. Ich würde vorschlagen, nicht mit--recursive
mit einem glob da die Einheiten bereits über die Fähigkeit zu suchen, rekursiv in Unterverzeichnisse. Sie tun konnten:Dieser entsprechen würde alle Dateien, die entsprechen
*.tests.js
rekursiv insrc/app
. Beachten Sie, wie ich mit einfachen Anführungszeichen rund um das Muster. Dies ist zu zitieren, die Muster, so dass es übergeben wird, um Mokka-s-Platzhalter-code. Ansonsten, Ihre shell könnte interpretieren. Einige Muscheln, abhängig von den Optionen, übersetzen**
in*
und Sie werden nicht die Ergebnisse bekommen, die Sie wollen.mocha --watch
re-analysiert, die alle mein test-Dateien mit dem glob Sie oben definiert? Wenn ich den test manuell unter Verwendung von entwedernpm test
odermocha --watch
alle test-Dateien in meiner gesamten infra laufen das erste mal durch, aber wenn ich edit der test währendmocha --watch
aktiviert ist, werden nur die ersten test-Datei neu ausgeführt... ich halte meine Mokka-flags in Mokka.entscheidet sich.mocha --watch
. Vielleicht triffst du eine Marotte, wie es funktioniert. Zum Beispiel, eine seiner Macken ist, dass es nicht erkennt, wenn Dateien zusätzlichen auf Verzeichnisse. Ich benutzegulp
's Unterstützung für die überwachung von Dateien, die beginnt Mokka von Grund auf neu jedes mal, wenn es ausgelöst wird, so dass ich Ausweichen jede Mackemocha --watch
haben können. Vielleicht haben Sie Interesse in diesem Kommentar. Es wird von einem Inhaber der Mokka-repo auf github. Was ich von ihm bekommen ist, dass die Betreuer nicht empfehlen die Verwendung von--watch
.:P
Ich gebegulp
einen Schuss.src/app/foo.tests.js
undsrc/app/x/bar.tests.js
undsrc/app/a/b/c/d/baz.tests.js
. Ein häufiger Fehler, den Leute machen, ist zu vergessen, um (wie ich bereits in der Antwort y) nennen Sie die Muster. Es endet, wird interpretiert von Ihrer Schale, die möglicherweise oder möglicherweise nicht arbeiten. Die Standard-setups dersh
-Schalen Typ Schraube das Muster, wenn es nicht zitiert.