У меня есть проект узла, работающий в контейнере докеров, к которому chrome-debugger подключается через порт 9229. При использовании фактического приложения (в отличие от запуска набора тестов) отладчик отлично показывает ошибки / точки останова.
Однако, когда я запускаю npm run test:e2e из контейнера докеров, команды отладчика, точки останова и т. д. Полностью игнорируются. Набор тестов работает, но никаких перерывов не обнаруживает.
По общему признанию, я новичок как в докере, так и в узле, но тот факт, что точки останова приложения (в отличие от шутки) работают, меня полностью смущает. Если у кого-то есть идеи о том, как получить точки останова шутки из контейнера докеров, работающего в chrome-debugger (или vs code, если на то пошло), я был бы очень признателен. Детали конфигурации ниже:
pf_debugger:
build: ./pf
image: pf_debugger
container_name: pf_debugger
working_dir: /www
ports:
- "9229:9229"
command: "npm run start:debug"
volumes:
- ./pf:/www
- node_modules:/www/node_modules
depends_on:
- "indy_pool"
- "pf"
networks:
- pf_network
# ...
"scripts":
"start:debug": "nodemon --config nodemon-debug.json",
"test:e2e": "jest --config ./test/jest-e2e.json",
{
"moduleFileExtensions": ["js", "json", "ts"],
"rootDir": ".",
"testEnvironment": "node",
"testRegex": ".e2e-spec.ts$",
"transform": {
"^.+\\.(t|j)s$": "ts-jest"
}
}
{
"watch": ["src"],
"ext": "ts",
"inspect": "0.0.0.0:9229",
"exec": "node --inspect=0.0.0.0:9229 --debug -r ts-node/register src/main.ts"
}
{
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "attach",
"name": "Node: Nodemon",
"restart": true,
"sourceMaps": true,
"protocol": "inspector",
"address": "127.0.0.1",
"port": 9229,
"localRoot": "${workspaceRoot}/",
"remoteRoot": "/www/"
},
{
"type": "node",
"name": "e2e-tests",
"request": "launch",
"program": "${workspaceFolder}/node_modules/jest/bin/jest",
"cwd": "${workspaceFolder}",
"console": "integratedTerminal",
"internalConsoleOptions": "neverOpen",
"args": [
"--runInBand",
"--config=test/jest-e2e.json"
]
}
]
Да - работает локально, точки останова отображаются нормально
вы пробовали подключить визуальную студию к удаленному отладчику?
@ Дерево Да. Я добавил launch.json выше для ясности. :-)
Я тоже не эксперт, но может быть, вы выставляете отладчик на localhost, и когда вы хотите подключиться к нему из внешнего отладчика, он должен быть открыт для какого-то внешнего интерфейса


Для справки решил свою проблему. Добавление --runInBand к команде npm:test обеспечивает соблюдение точек останова
а где твой npm: test в тех конфигах, которые ты написал? не могли бы вы объяснить лучше? У меня такие же проблемы ... / \
Здравствуйте, PlankTon, вы можете опубликовать свое полное решение? Я тоже здесь с этой проблемой.
Когда вы запускаете тесты локально с помощью vscode, правильно ли вы получаете точки останова jest?