4

Ich versuche, Nachtwache e2e Tests mit VS-Code debuggen. Ich schreibe meine Tests mit Typoskript. Es kann nur funktionieren, wenn ich einen Haltepunkt in die js-Datei setze, danach geht es in die ts-Datei und ich kann es von dort aus debuggen. Wenn ich es in die ts-Datei meines Tests lege - wird es nie aufhören und es wird geschrieben "" Breakpoint ignoriert, weil generierter Code nicht gefunden wird. "Meine Quelldateien werden mit dem ts-Compiler in den Ordner/dist/dev/specs/e2e/nightwatch kompiliert/src. Code aus der launch.jsonWie Debuggen Nachtwacht Tests in VS-Code

 "name": "Launch e2e Tests on chrome", 
     "type": "node", 
     "console": "integratedTerminal", 
     "program": "${workspaceRoot}/dist/dev/specs/e2e/nightwatch/nightwatch.js", 
     "stopOnEntry": false,. 
     "args": ["-env default,-f DatabaseChecks.js"], 
     "cwd": "${workspaceRoot}", 
     "runtimeExecutable": null,. 
     "runtimeArgs": ["--nolazy"], 
     "env": { 
      "NODE_ENV": "development" 
     }, 
     "sourceMaps": true, 
     "outFiles": ["${workspaceRoot}/dist/dev/specs/e2e/nightwatch/src"], 
     "request": "launch" 

Vielleicht

würde geschätzt hatte jemand ähnliches Problem? Jede Hilfe.
+0

Sie benötigen Hinzufügen von Informationen darüber, wie und wo Sie Ihre Quelldateien kompilieren und speichern. Sie haben dies als Typoskript markiert, also nehme ich an, dass Sie ts -> js kompilieren. Zum Debuggen tendiere ich dazu, dass tsc in einen temporären Ordner kompiliert wird und dann "outFiles" darauf zeigt. –

+0

Genau, ich benutze TS-Compiler und fertige js-Dateien in den Ordner, den ich in "outFiles" angegeben habe. Als Ergebnis habe ich sowohl js als auch js.map Dateien. Ich habe versucht, eine genaue Datei zu "outFiles" zu bringen, aber immer noch kein Glück. – Katia

+0

Vielleicht bietet dieser Thread die gewünschte Lösung (Inline-Quellkarten in tsconfig.json aktivieren). https://groups.google.com/forum/#!topic/nightwatchjs/5pY0nKFTunQ – jannnik

Antwort

1

Eine Sache, die mich in der Regel in Fällen hilft, wenn ich zu Debug-Server-Seite node.js haben aps - verwenden Sie gulp-sourcemaps und spielen Sie mit generierten Quellpfaden herum (prüfen Sie den Wert der "sources" -Eigenschaft in Ihren js.map-Dateien), indem Sie sie absolut machen und perfekt mit Ihren ts-Dateien übereinstimmen:

Zum Beispiel:

gulp.task('build',() => 
{ 
    var tsProject = ts.createProject('tsconfig.json', { 
     typescript: require('typescript') 
    }); 

    var tsResult = tsProject.src() 
     .pipe(sourcemaps.init()) 
     .pipe(tsProject()); 

     //Write compiled js 
    return tsResult.js.pipe(sourcemaps.write(
      ".", 
      { 
       includeContent: false, 
       mapSources: function(sourcePath) 
       { 
        //Play around here - converting your relative paths to absolute ones that match location of ts file perfectly 
        return sourcePath.replace('../../../', __dirname + '/'); 
       } 
      })).pipe(gulp.dest(TEMP_TARGET_FOLDER)); 
}); 

Obwohl es ein bisschen hackish ist - es funktioniert für mich einrichten jedes Mal, und ist ganz einfach.

+0

Das hat auch für mich funktioniert, danke! – Katia

1

können Sie diese Konfiguration verwenden, wenn Sie das Typoskript Teil nicht brauchen (Basierend auf WebStorm Vorschlag):

{ 
"version": "0.2.0", 
"configurations": [ 
    { 
     "type": "node", 
     "request": "launch", 
     "name": "Launch Program", 
     "program": "${workspaceRoot}/node_modules/nightwatch/bin/runner.js", 
     "args": [ 
      "--config", 
      "test/e2e/nightwatch.conf.js" 
     ] 
    } 
] 

}

+0

Gilt nicht für die Frage, da Katia nach einem typoskriptfähigen Fix gefragt hat, aber es ist ein Top-Ergebnis in Google und genau das, was ich für meine Nicht-Typoskript-Lösung brauchte. –

0

ich, dass man:

{ 
    "type": "node", 
    "request": "launch", 
    "name": "Nightwatch 2", 
    "port": 9229, 
    "program": "${workspaceRoot}/node_modules/nightwatch/bin/nightwatch", 
    "stopOnEntry": false, 
    "args": [ 
     "--env", 
     "localchrome" 
    ], 
    "cwd": "${workspaceRoot}", 
    "sourceMaps": false, 
    "env": { 
     "ENV": "s11", 
     "TAGS": "@WIP" 
    }, 
    "runtimeArgs": [ 
     "--inspect" 
    ] 
} 
Verwandte Themen