I am using Angular CLI and VSCode but none of my breakpoints in my spec files seem to be getting hit when I run ng test
?
Do I need to do some config?
This is what worked for me with:
In your project root directory open karma.conf.js
. Right after singleRun: false
add ,
followed by this section:
customLaunchers: {
ChromeDebug: {
base: 'Chrome',
flags: [ '--remote-debugging-port=9333' ]
}
}
Add configuration to .vscode/launch.json
.
For versions 8.* - 9.* (note "pathMapping
section!):
{
"type": "chrome",
"request": "attach",
"name": "Unit tests",
"address": "localhost",
"port": 9333,
"sourceMaps": true,
"webRoot": "${workspaceFolder}",
"pathMapping": {
"/_karma_webpack_": "${workspaceFolder}"
}
},
For version 7.*:
{
"type": "chrome",
"request": "attach",
"name": "Unit tests",
"address": "localhost",
"port": 9333,
"sourceMaps": true,
"webRoot": "${workspaceFolder}"
},
Run ng test --browsers ChromeDebug
Wait for Chrome browser to start. You will see something like this in command line:
01 06 2017 16:07:29.276:INFO [launcher]: Launching browser ChromeDebug with unlimited concurrency
Set the breakpoint in one of your .spec.ts
files.
In Visual Studio Code choose Unit tests
debug configuration and hit F5 ("Start Debugging" button).
Press Shift+Ctrl+F5
or refresh the Chrome window to rerun the tests and hit the breakpoint.
You can also modify your package.json and add a new script:
"test-debug": "ng test --browsers ChromeDebug",
Then next time you want to start ng test
with debugging just run:
npm run test-debug
References: