Μη επαληθευμένα σημεία διακοπής κατά την αποσφαλμάτωση δοκιμών Typescript Mocha σε Docker με το Visual Studio Code
Προσπαθώ να εντοπίσω σφάλματα σε ένα τεστ Mocha με το Visual Studio Code που εκτελείται σε ένα κοντέινερ Docker. Λόγω του κοντέινερ Docker πρέπει να ξεκινήσω τα τεστ από μέσα στο κοντέινερ και να συνδεθώ σε αυτό, κάτι που αποκλείει απαντήσεις όπως αυτή. Καταφέρνω να συνδέσω τον debugger και ακόμη και να σταματήσει με την ενεργοποιημένη σημαία --debug-brk. Αλλά κάθε breakpoint που ορίζω επισημαίνεται ως "Μη επαληθευμένο breakpoint" από το VS Code, ανεξάρτητα από το αν το έθεσα:
- στα δοκιμασμένα αρχεία Typescript
- σε αρχεία Javascript που απαιτούνται άμεσα ή έμμεσα από τα αρχεία Typescript
- στο αποτέλεσμα του μεταγλωττιστή Typescript
Ορίστε τι κάνω:
- Τρέξτε
npm testμέσα στο container, το οποίο μεταφράζεται σεNODE_ENV=test API_PORT=8081 DBDATABASE=tests mocha --timeout 50000 -r source-map-support/register -r ts-node/register --preserve-symlinks --exit --debug-brk --inspect=0.0.0.0:9229 "./src/**/*.spec.ts" - Ξεκίνησε τον αποσφαλματωτή.
- Ορίστε το σημείο διακοπής. Αμέσως γκριζάρει και εμφανίζει «Μη επιβεβαιωμένο σημείο διακοπής» όταν περνάτε τον δείκτη από πάνω.
Το σχετικό μέρος του launch.json:
{
"type": "node",
"request": "attach",
"name": "Debug Backend",
"port": 9229,
"restart": true,
"protocol": "inspector",
"localRoot": "${workspaceFolder}/api/backend/",
"remoteRoot": "/api/backend/",
"outFiles": ["${workspaceFolder}/api/backend/dist/**/*.js"],
"skipFiles": ["<node_internals>/**/*.js"]
},
Σε περίπτωση που μπορεί να είναι σχετικό, εδώ είναι το tsconfig.json:
{
"compilerOptions": {
"target": "es6",
"module": "commonjs",
"lib": ["es5", "dom", "scripthost", "es2017", "es6", "es7"],
"allowJs": true,
"outDir": "./dist/",
"preserveSymlinks": true,
"strict": true,
"noImplicitThis": false,
"moduleResolution": "node",
"baseUrl": "./",
"paths": {
"sequelize-test-helpers": ["typings/sequelize-test-helpers"]
},
"typeRoots": ["node_modules/@types", "typings"],
"types": ["node", "core-js"]
},
"include": ["src/**/*.ts", "typings"]
}