VS CodeでKarmaテストをデバッグしたいのですが、方法がわかりませんでした。それを行う方法はありますか、別のIDE(WebStorm)を使用する必要がありますか?
試して
{
"name": "jasmine",
"type": "node",
"request": "launch",
"program": "${workspaceRoot}/node_modules/jasmine/bin/jasmine.js",
"stopOnEntry": false,
"args": [
"JASMINE_CONFIG_PATH=${workspaceRoot}/spec/support/jasmine.json"
],
"cwd": "${workspaceRoot}",
"runtimeArgs": [
"--nolazy"
],
"env": {
"NODE_ENV": "development"
}
}
デバッガーをChromeインスタンスに接続することによりKarmaをデバッグできます。launch.json
このような設定:
{
"version": "0.2.0",
"configurations": [
{
"type": "chrome",
"request": "attach",
"name": "Attach Karma Chrome",
"address": "localhost",
"port": 9333,
"pathMapping": {
"/": "${workspaceRoot}/",
"/base/": "${workspaceRoot}/"
}
}
]
}
ただし、karma.conf.js config
、Chromeインスタンスを開発ツールが9333
port、次のように:
browsers: [
'ChromeDebugging'
],
customLaunchers: {
ChromeDebugging: {
base: 'Chrome',
flags: [ '--remote-debugging-port=9333' ]
}
},
このようなセットアップを使用すると、カルマサーバーを(キャプチャされたブラウザーで)実行し、Visual Studioでデバッグを開始できます。
詳細については、 Visual Studio CodeでKarmaをデバッグする のチュートリアルを作成してください。
Angular CLI 1.7.4:次の手順により、hello world AngularアプリケーションをVisual Studio Codeでデバッグできました。
新しいHelloWorldプロジェクトを生成します。
ng new HelloWorld
Visual Studio Codeでプロジェクトを開きます
code HelloWorld
新しいデバッグ構成を作成します。
.vscode/launch.json
ファイルが生成され、開かれます。その内容を次のものに置き換えます。
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.Microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"type": "chrome",
"request": "launch",
"name": "Karma Tests",
"sourceMaps": true,
"webRoot": "${workspaceRoot}",
"url": "http://localhost:9876/debug.html",
// "runtimeArgs": [
// "--headless"
// ],
"pathMapping": {
"/": "${workspaceRoot}",
"/base/": "${workspaceRoot}/"
},
"sourceMapPathOverrides": {
"webpack:///./*": "${webRoot}/*",
"webpack:///src/*": "${webRoot}/*",
"webpack:///*": "*",
"webpack:///./~/*": "${webRoot}/node_modules/*",
"meteor://????app/*": "${webRoot}/*"
}
}
]
}
次に、より単純な構成を示します(launch.json
):
{
"type": "chrome",
"request": "launch",
"name": "Test",
"sourceMaps": true,
"webRoot": "${workspaceRoot}/Test",
"url": "http://localhost:9876/debug.html",
"runtimeArgs": [
"--headless"
]
}
重要:
webRoot
をKarmaがテストを提供しているフォルダーに変更します。url
を適宜変更します。この構成は、いくつかの理由により簡単です。
singleRun: false
があることを確認する必要があります。 VS Codeは独自のブラウザーを起動するため(ヘッドレスモードで表示されないため)、browsers: []
を設定することもできます。preLaunchTask
を追加することにより、この構成を改善できます。 バックグラウンドタスク として設定する必要があります。angularカルマテストのデバッグを探している人は、Microsoftの vscode-recipe を参照してください。
@Awsedの優れた説明に従いました[ありがとうございます!]、いくつかの注目すべき注意事項があり、物事を機能させることができました。
VSCodeには、specファイルのブレークポイント行の追跡に問題があるバグがあるようです。特にコードを変更した場合、VSCodeはブレークポイントがどの行にあるかについて混乱しているように見えるため、正しいセットアップを行ってもブレークポイントにヒットしませんでした。私はこれに対する救済策を見つけることができませんでした(2回再起動し、VSCodeを複数回再起動した後でも)。しばらく変更されておらず、ブレークポイントを正常にヒットすることができたテストファイルに移動することで、これを発見することができました。そのため、問題が発生しているファイルのページの別の場所にブレークポイントを移動し、(最終的に)ブレークポイントにヒットする場所を見つけることができました。
また、「停止」ボタンはプロセスを強制終了せず、ヘッドレスであるためタスクマネージャーで見つけることができないため、Chromeヘッドレスを実行することはお勧めしません。代わりにそれを殺すコマンド(例 https://superuser.com/questions/1288388/how-can-i-kill-all-headless-chrome-instances-from-the-command-line-on- windows );そうしないと、再度実行することはできません。