Wussten Sie, dass Sie einfach in Ihre Startkonfiguration gehen, den Cursor nach oder zwischen Ihre anderen Konfigurationen setzen und ctrl- drücken space, um eine aktuelle, gültige Mokka-Konfiguration automatisch zu generieren?
Welches funktioniert perfekt für mich. Einschließlich Anhalten an Haltepunkten. (Ich hatte auch einen früheren, jetzt veralteten, der aus verschiedenen einstellungsbezogenen Gründen nicht mehr funktionierte.)
Ab VSCode 1.21.1 (März 2018) ergibt dies:
{
"version": "0.2.0",
"configurations": [
{
"name": "Mocha (Test single file)",
"type": "node",
"request": "launch",
"runtimeArgs": [
"${workspaceRoot}/node_modules/.bin/mocha",
"--inspect-brk",
"${relativeFile}",
],
"console": "integratedTerminal",
"internalConsoleOptions": "neverOpen",
"port": 9229
}
}
debug-brk
Nebenbei bemerkt: ist korrigiert (für jeden mit Node> = Version 8 mindestens).
"args"
"--require", "${workspaceFolder}/tools/testSetup.js",
Ctrl+Space
Mocha Tests-Konfiguration hatte keinedebug-brk
. Trotzdem funktionierte das Debuggen mit Haltepunkten einwandfrei.debug-brk
es wird lange nicht mehr verwendet, unterstützt oder automatisch eingefügt. Meine Randnotiz hat dies nur klargestellt, da es in mehreren anderen Antworten erwähnt wird.ctrl + space
, damit es funktioniert.Wenn Sie nicht
--debug-brk
+ Anhängen verwenden oder einen absoluten Pfad zu Ihrer globalen Mokka-Installation angeben möchten (der bremst, wenn Sie Ihre launch.json unter Versionskontrolle halten und mehrere Entwickler auf verschiedenen Computern haben), installieren Sie Mokka als Entwicklungsabhängigkeit und Fügen Sie dies zu Ihrem launch.json hinzu:Volle Debugging-Unterstützung in Ihren Tests durch Drücken von F5.
--no-timeouts
stellt sicher, dass Ihre Tests keine Zeitüberschreitung aufweisen, weil Sie an einem Haltepunkt angehalten haben, und--colors
stellt sicher , dass Mocha Farben ausgibt, obwohl nicht erkannt wird, dass VS Code Farben unterstützt.quelle
sourceMaps: true
. Vielen Dank, eine Milliarde!npm_config_myparam
dem env-Block etwas hinzu, um Ihre npm-kompatiblen benutzerdefinierten Testparameter hinzuzufügen . Wo auf der CLI könnte es aussehennpm --myparam=myvalue test
.Eine andere Möglichkeit besteht darin, die
--debug-brk
Befehlszeilenoption von mocha und die Standardeinstellung für denAttach
Start des Visual Studio Code-Debuggers zu verwenden.Vorgeschlagene tiefere Erklärung (von André)
Um dies zu tun:
Führen Sie Mokka über die Befehlszeile mit diesem Befehl aus:
Klicken Sie nun in VS Code auf das Debug-Symbol und wählen Sie dann
Attach
aus der Option neben der Startschaltfläche. Fügen Sie Haltepunkte in VS Code hinzu und klicken Sie dann auf Start.quelle
"request": "attach"
die Datei launch.json hinzufügen , wenn sie nicht vorhanden ist. Andernfalls wird beanstandet, dass Sie ein Programm oder einen anderen Fehler angeben müssen.VS Code
spezifisch zu sein. Funktioniert nicht im normalen VS 2015--debug-brk
ist heute veraltet , deshalb schlage ich vor , Auto-Erstellung eine neue Debug - config in vscode , ja, alslo speziell für Mokka.Ich habe diese Arbeit auf VSCode unter OS X 10.10 gemacht. Ersetzen Sie einfach Ihre
./settings/launch.json
Datei durch diese.Es ist auch als Kern verfügbar hier .
Die Schlüsselwerte, die Sie ändern müssen, sind die
program
, die auf die_mocha
ausführbare Datei festgelegt werden sollten, undargs
die ein Array Ihrer Testdateien sein sollten.quelle
OpenDebug process has terminated unexpectedly
"runtimeExecutable"
auf"C:/Program Files/nodejs/node.exe"
oder überall dort einzustellen, wo Node installiert ist?Die Art und Weise, wie ich es unter VS OS (1.8.2) unter Mac OS X zum Laufen gebracht habe, ist:
Mocha muss im Verzeichnis der npm-Module installiert sein.
quelle
Debug > Add Configuration...
Menü gehenNode.js
UmgebungMocha Tests
Option aus der angezeigten Dropdown-Listeargs
Eigenschaft einbreakpoint
Debug
SymbolMocha Tests
Sie als KonfigurationsStart debugging
Sie Tastequelle
Ich habe einen Weg gefunden, dies zu tun, den ich als Problemumgehung klassifiziere . Ich erwarte, dass das Visual Studio Code-Team eine endgültigere Lösung dafür bereitstellt, aber in der Zwischenzeit habe ich Folgendes getan:
./settings/mocha.js
Datei erstellt, in der Mokka programmgesteuert ausgeführt wird, wobei Argumente als Liste der auszuführenden Dateien übergeben werden. Sie können die vollständige Datei hier sehen ;Ich habe eine Startkonfiguration erstellt, die
./settings/mocha.js
als ausgeführt wirdprogram
und die zu testenden Dateien / Dateimuster als Argumente übergibt:Vollständiges Beispiel für launch.json
Das entspricht also dem Tun
mocha test/unit/*.js test/unit/**/*.js
und jetzt können wir Haltepunkte in unseren Mokka-Tests verwenden.quelle
'sourceMaps': true, 'outDir': './build'
meine Startkonfiguration erweitert.Wenn Sie am Ende der Argumentliste die Variable $ {file} hinzufügen, können Sie das Debuggen direkt aus der geöffneten Datei starten:
quelle
Es tut mir leid, dass ich noch eine weitere Antwort hinzugefügt habe, aber keine der vorherigen hat ab VS Code 1.8.1 und dem darin enthaltenen Standard-Node-Debugger für mich funktioniert. Hier ist die Art und Weise, wie ich es gelöst habe (unter Anleitung der vorherigen Antworten hier und der offiziellen VS Code Node.js Debugging- Dokumente), sodass es ein Debugging mit einem Klick / Tastendruck gibt:
devDependency
in installiert istpackages.json
:"devDependencies": { "mocha": "^3.2", ... }
npm install
in Ihrem Verzeichnis auspackage.json
, um sicherzustellen, dass Mokka jetzt in installiert istnode_modules/
.vscode/launch.json
(oder drücken Sie im VS-Code F1, geben Sie "launch" ein und wählen Sie "Debug: Open launch.json").launch.json
, wählen Sie dann den neuen Konfigurationsnamen im Debug-Fenster in VS Code und klicken Sie auf den grünen Pfeil, um das Debuggen Ihrer Knoten- + Mokka-Tests zu starten!In der neuen Konfiguration in
launch.json:
Dies setzt voraus, dass das Muster dort
test/**/*.js
funktioniert, wo Sie Ihre Tests durchführen. Gegebenenfalls ändern.Sie können den Port jederzeit ändern, solange Sie ihn in den entsprechenden
args
undport
Eigenschaften ändern .Die wichtigsten Unterschiede für mich dafür , dass Mokka war
node_modules
, mitprogram
der ausführbaren Datei zu Punkt, undargs
benötigendebug-brk=x
zeigte auf den Port angegeben inport
. Der Rest der oben genannten macht die Dinge nur schöner und einfacher.Es liegt an Ihnen und Ihrem Team, ob Sie
.vscode/launch.json
das Repository einrichten oder nicht. Es ist eine reine IDE-Datei, aber Ihr gesamtes Team könnte sie problemlos verwenden, da alle Pfade und Installationen relativ und explizit sind.Tipp: Das
package.json
kann einscripts
Tag enthalten, das auch Mokka mit so etwas wie startet"test": "./node_modules/.bin/mocha"
, aber nicht von VS Code verwendet wird. Stattdessen wird es verwendet, wennnpm test
es über die Befehlszeile ausgeführt wird. Dieser verwirrte mich ein bisschen. Beachten Sie es hier, falls andere auch verwirrt werden.BEARBEITEN: VS Code 1.9.0 hat in der Dropdown-Liste Debug-Konfiguration die Option "Konfiguration hinzufügen" hinzugefügt, und Sie können "Node.js Mocha Tests" auswählen, um die meisten der oben genannten Punkte zu vereinfachen. Sie müssen immer noch sicherstellen, dass sich Mokka in Ihrem befindet,
node_modules
und möglicherweise dascwd
und das letzteruntimeArgs
(das Muster zum Auffinden Ihrer Tests) aktualisieren , um auf die entsprechenden Pfade zu verweisen. Aber sobald Sie diese beiden Eigenschaften festgelegt haben, sollte es von dort aus ziemlich gut funktionieren.quelle
Fügen Sie in der Datei launch.json 1 weitere Konfiguration hinzu
Wenn Sie die Knotenversion konfigurieren müssen, fügen Sie einfach ein
runtimeExecutable
Feld wie dieses hinzuquelle
Für alle, die Windows verwenden. Wenn Sie Mokka global installiert haben, hat es für mich funktioniert, das Programm auf den folgenden Pfad zu setzen (tauschen Sie Ihren Benutzernamen aus).
quelle
Dies funktioniert für mich auf einem Windows 7-Computer. Ich habe Mokka global installiert, aber diese Konfiguration verweist auf die Projektinstallation, um die Notwendigkeit eines Benutzerprofilpfads zu vermeiden (übrigens habe ich versucht, die Variable% USERPROFILE% ohne Erfolg zu verwenden). Ich kann jetzt in meinen Mokka-Tests Haltepunkte setzen. Yay!
quelle
Für diejenigen, die Grunzen oder Schlucken verwenden, ist die Konfiguration ziemlich einfach.
Launch.json
Gruntfile.js
quelle
In VSCode Version 1.13.0 (macOS) ist es unter Konfigurationen -> integriert
Mocha Tests
.quelle
Wenn Sie Babel verwenden oder Javascript-Dateien generieren und dennoch Haltepunkte in der Quelle platzieren, müssen Sie sicherstellen, dass diese aktiviert
sourceMaps
und definiert sindoutFiles
. Hier ist eine Beispielkonfiguration, die für mich funktioniert hat.Hinweis - Sie müssen Änderungen vornehmen
outFiles
, um alles einzuschließen, zu dem Sie möglicherweise einen Haltepunkt hinzufügen möchten. Dies kann in einem Monorepo und mehreren abhängigen Projekten langwieriger sein.quelle
1) Gehe zu
dann
Datei
2) Fügen Sie die folgende Konfiguration in launch.json hinzu -
3) Setzen Sie Haltepunkte in der Testdatei und drücken Sie dann
F5
quelle
Bei Verwendung von TypeScript funktioniert die folgende Konfiguration für mich in Visual Studio Code 0.8.0 (tsc 1.5.3).
tsconfig.json
Hierbei ist zu beachten, dass Quellkarten generiert werden und das Ausgabeverzeichnis für js auf gesetzt ist
build
launch.json
Bitte beachten Sie, dass dies
sourceMaps
auftrue
und aufoutDir
eingestellt istbuild
zu debuggen
index.ts
jede andere importierte Typoskriptdateimocha --debug-brk ./build/test/appTests.js
quelle
Hier ist ein Beispiel für die Startkonfiguration (launch.json) von Microsoft, die mit Mocha zusammenarbeitet und die Verwendung des Debuggers ermöglicht.
Außerdem gibt es eine Beschreibung , wie die debug-brk Option zu verwenden.
Schließlich finden Sie hier eine alternative Version zum Debuggen von Code mit Mocha-Tests unter Verwendung der Datei task.json von VS Code und Gulp Task Runner.
quelle
Wenn Sie im Test eine gewisse Abhängigkeit haben, können Sie diese auch einfach anhängen.
Zum Beispiel verwende ich
mongo-unit-helper
auch Unit-Tests, die in die Datenbank integriert sind.package.json
Skript ist:mocha --recursive --require ./test/mongo-unit-helper.js --exit"
Mein
launch.json
sieht aus wie:Die Lösung besteht darin,
--require
separatargs
einzutragenlaunch.json
.quelle
Einfachste Lösung
Fügen Sie der Datei launch.json im Ordner .vscode den folgenden Code hinzu:
Möglicherweise möchten Sie jedoch auch ein Timeout-Argument hinzufügen:
quelle