Как отлаживать Jest в удаленных контейнерах VSCode - PullRequest
0 голосов
/ 05 ноября 2019

Я успешно настроил отладчик в VSCode для узла в Docker:

(это работает)

  {
      "type": "node",
      "request": "attach",
      "name": "Attach to Docker",
      "localRoot": "${workspaceFolder}/src/",
      "remoteRoot": "/app/src/",
      "restart": true,
      "sourceMaps": true,
      "showAsyncStacks": true,
      "port": 9229
    }

И я могу использовать Расширение удаленных контейнеров VSCode во время отладки проблем нет. Важная часть моего файла docker-compose находится здесь:

(это работает)

  web:
    build: .
    command: npm run dev
    volumes:
      - ./tsconfig.json:/app/tsconfig.json
      - ./src:/app/src
      - ts-cache:/root/cache
    ports:
      # server api
      - '5000:5000'
      # node debugger
      - '9229:9229'

И скрипт узла:

(это работает)

ts-node-dev \
  --cache-directory /root/cache \
  --respawn \
  --transpileOnly \
  --inspect=0.0.0.0:9229 \
  -- \
  src/index.ts

Проблема!

Я не могу добавить точки останова к тестам Jest. Вот мой скрипт для запуска Jest:

exec node --nolazy \
  --inspect=0.0.0.0:9239 \
  ./node_modules/.bin/jest \
  --runInBand \
  --clearMocks \
  --restoreMocks \
  --verbose=false \
  --watchAll \
  "$@"

Я запускаю один сервис в docker-compose с docker-compose run --rm -p 9239:9239 web ./test.sh. И я пробую этот скрипт запуска VSCode (который очень похож на описанный выше):

    {
      "type": "node",
      "request": "attach",
      "name": "Attach to Docker Test",
      "port": 9239,
      "restart": true,
      "localRoot": "${workspaceFolder}/src/",
      "remoteRoot": "/app/src/"
    }

Обратите внимание, что отладчик успешно подключается, но точки останова не проверяются и не ломаются. При наведении курсора на точки останова редактор говорит:

«Точка останова игнорируется, поскольку сгенерированный код не найден (проблема с картой источника?).»

Я специально удалил sourceMaps, а затем попыталсяустановив для sourceMaps значение false, но, похоже, это не решает проблему.

Любая помощь приветствуется!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...