დეიბაგის დროს Typescript Mocha ტესტებში Docker-ში Visual Studio Code-თან უცნობი გაჩერების წერტილები


მივყვები Mocha ტესტის დებაგირებას Visual Studio Code-ში, რომელიც Docker კონტეინერში მუშაობს. Docker კონტეინერის გამო, ტესტები უნდა გავუშვა კონტეინერის შიგნიდან და მივამაგრო ის, რაც გამორიცხავს მსგავს საკითხებზე პასუხებს. მე დავაკავშირებ დებაგერს და ის ასევე შეფერხდება --debug-brk დროშის ჩართვისას. თუმცა, თითოეული ბრეკპოინტი, რომ მე ვსვავ, მონიშნულია როგორც "Unverified breakpoint" VS Code-ს მიერ, მიუხედავად იმისა, დავაყენე თუ არა ის:

  • ტესტირებულ Typescript ფაილებში
  • Javascript ფაილები, რომლებიც პირდაპირ ან არაპირდაპირ მოთხოვნილია Typescript ფაილებიდან
  • TypeScript კომფილატორის გამომავალში

ეს ვქნები:

  1. გაატარეთ npm test კონტეინერის შიგნით, რაც ითარგმნება როგორც 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"
  2. გააქტიურეთ დებაგერი.
  3. დააყენე ბრეკპოინტი. ის მაშინვე გრუეებზე გადადის და მაუსის ქვევით "ვერადასტურებელი ბრეკპოინტი" ეწერება.

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"]
}