J'utilise Angular CLI et VS code mais aucun de mes points d'arrêt dans mes fichiers de spécifications ne semble être touché lorsque je lance ng test?
Dois-je faire une config?
Les autres réponses sont des réponses tout à fait valables, mais ayant utilisé Angular depuis environ 18 mois maintenant, j'ai tendance à le faire dans le navigateur - chrome outils!
Exécutez ng test puis f12 et recherchez le fichier de spécification via le contexte webpack. Ajoutez un ou plusieurs points d'arrêt et actualisez-le. Il atteindra lesdits points d'arrêt. Selon la capture d'écran
Dans la nouvelle version de VSCode (1.14.0) , ils suivent ceci recette :
Vous pouvez déboguer l’application Angular entièrement (tests unitaires compris)), la recette est simple.
Pour quelque raison que ce soit, il y a le préfixe _karma_webpack_
(N'était pas là pour la version 7), donc j'ai dû ajouter une section supplémentaire pathMapping
à .vscode/launch.json
:
{
"type": "chrome",
"request": "attach",
"name": "Unit tests",
"address": "localhost",
"port": 9333,
"sourceMaps": true,
"webRoot": "${workspaceRoot}",
"pathMapping": {
"/_karma_webpack_": "${workspaceRoot}"
}
},
C’est ce qui a fonctionné pour moi avec Angular CLI 1.0. * Et Chrome sur Windows 7.
Dans le répertoire racine de votre projet, ouvrez karma.conf.js
. Juste après singleRun: false
, Ajoutez ,
Suivi de cette section:
customLaunchers: {
ChromeDebug: {
base: 'Chrome',
flags: [ '--remote-debugging-port=9333' ]
}
}
Ajoutez la configuration à .vscode/launch.json
:
{
"type": "chrome",
"request": "attach",
"name": "Unit tests",
"address": "localhost",
"port": 9333,
"sourceMaps": true,
"webRoot": "${workspaceRoot}"
},
Exécuter ng test --browsers ChromeDebug
Attendez que le navigateur Chrome démarre. Vous verrez quelque chose comme ceci en ligne de commande:
01 06 2017 16:07:29.276:INFO [launcher]: Launching browser ChromeDebug with unlimited concurrency
Définissez le point d'arrêt dans l'un de vos fichiers .spec.ts
.
Dans Visual Studio Code, choisissez la configuration de débogage Unit tests
Et appuyez sur F5 (bouton "Démarrer le débogage").
Appuyez sur Shift+Ctrl+F5
Ou actualisez la fenêtre Chrome pour réexécuter les tests et atteindre le point d'arrêt.
Vous pouvez également modifier votre package.json et ajouter un nouveau script:
"test-debug": "ng test --browsers ChromeDebug",
Ensuite, la prochaine fois que vous souhaitez démarrer ng test
Avec le débogage, exécutez simplement:
npm run test-debug
Les références:
Juste pour ajouter aux autres réponses:
ng test
.ng test
du menu déroulant.Vous pouvez simplement ajouter un "débogueur" où vous souhaitez déboguer et exécuter
ng test
Lorsque le navigateur chrome s’ouvre, activez les outils de développement et il s’arrêtera sur votre "débogueur".