Как в интерактивном режиме отлаживать набор тестов NodeJS в VS Code?

У меня есть набор тестов Jest, который я хотел бы отладить с помощью интерактивного отладчика VS Code. Это отлично работает для обычных программ NodeJS ("program": "foo.js" в launch.json). Но набор тестов (foo.test.js) не является автономной программой, его нужно запускать из Jest.

Есть ли способ добиться этого?

Конкретный код здесь: https://gitlab.com/stevage/guess-projection

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
0
477
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Отладка стандартных тестов Jest

Этот документ в репозитории Microsoft vscode-получатели GitHub описывает, как настроить VS Code для отладки стандартных тестов Jest.

Launch.json выглядит так:

{
  "version": "0.2.0",
  "configurations": [
    {
      "type": "node",
      "request": "launch",
      "name": "Jest All",
      "program": "${workspaceFolder}/node_modules/.bin/jest",
      "args": ["--runInBand"],
      "console": "integratedTerminal",
      "internalConsoleOptions": "neverOpen",
      "windows": {
        "program": "${workspaceFolder}/node_modules/jest/bin/jest",
      }
    },
    {
      "type": "node",
      "request": "launch",
      "name": "Jest Current File",
      "program": "${workspaceFolder}/node_modules/.bin/jest",
      "args": ["${relativeFile}"],
      "console": "integratedTerminal",
      "internalConsoleOptions": "neverOpen",
      "windows": {
        "program": "${workspaceFolder}/node_modules/jest/bin/jest",
      }
    }
  ]
}

Отладка тестов Jest create-react-app

Если ваше приложение представляет собой приложение React, загружаемое с помощью создать-реагировать-приложение, то конфигурация немного отличается, поскольку Jest не запускается напрямую и описан в эта секция документации create-response-app.

Хм, первая ссылка кажется идеальной, но у меня она не работает. VS Code переходит в режим отладки, тесты запускаются ... но точки останова не попадают.

Steve Bennett 30.11.2018 01:08

@ СтивБеннетт да, интересно. Файл launch.json из этой ссылки - это то, что я использовал в прошлом, и я просто попробовал его снова с чистым проектом, и, похоже, он отлично работает в моей среде. Не могли бы вы рассказать больше о конфигурации и окружении Jest?

Brian Adams 30.11.2018 04:58

Добавил ссылку на мое репо. Launch.json - это прямая копия с этого сайта. Работает на OSX.

Steve Bennett 30.11.2018 05:04

@SteveBennett Я только что взглянул на это еще раз. Я клонировал ваше репо и скопировал его в launch.json по ссылке и смог достичь точек останова, которые я установил в конфигурациях Jest Current File и Jest All. Я использую macOS 10.14.2, VSCode 1.30.0, NodeJS 10.14.2. Получилось ли у вас работать в вашей среде?

Brian Adams 14.12.2018 04:33

Нет, мне не удалось заставить его работать, но я рад, что он помог вам. Я macOS 10.12, VSCode 1.30.0, node 10.0.0.

Steve Bennett 17.12.2018 06:34

Ха, только что еще раз протестировал, теперь работает. Я сделал полную перезагрузку компьютера между тем, как я разместил этот вопрос, и сейчас, может быть, связано с этим? Или, возможно, использовал более старую версию узла в то время. В любом случае, здорово, теперь это работает.

Steve Bennett 17.12.2018 06:37

Другие вопросы по теме