Подтвердить что ты не робот

Как отлаживать тесты Jasmine от Grunt в Visual Studio Code?

Мои юнит-тесты выполняются с использованием Karma/Jasmine через Grunt. Когда я запустил

grunt test

тесты выполняются из командной строки.

При открытии проекта в Visual Studio Code я могу запустить ту же команду, используя Tasks: Run Test Task. VSCode выполняет Grunt с параметром test и отображает вывод.

Как я могу отлаживать тестовые примеры, которые запускаются VSCode в этом случае? Когда я нажимаю F5, открывается файл шаблона launch.json. Что мне нужно для program, args и т.д., Чтобы запускать/отлаживать те же тестовые примеры, которые выполняются grunt test?

Я пробовал следующее:

  • program: /usr/local/bin/grunt
  • args: ["test"]

Это успешно запускает процесс Grunt и тесты выполняются, но он не останавливается на контрольных точках в моем тестовом коде.

Кроме того, через пару секунд он завершает (или аварийно завершает) весь процесс VSCode. Не уверен, что ошибка в VSCode или результат вышеуказанной конфигурации запуска.

4b9b3361

Ответ 1

Эта конфигурация запуска работает для меня в VS Code 0.10.2:

{
    "name": "grunt",
    "type": "node",
    "request": "launch",
    "program": "/usr/local/bin/grunt",
    "args": ["test"],
    "stopOnEntry": false
}

Установка контрольной точки в моей "тестовой" задаче заставила отладчика VS Code остановиться там. Я должен был установить grunt локально (в папке, где у меня есть Gruntfile).

Ответ 2

Я не думаю, что вы можете сделать что-то вроде node --debug-brk grunt test, где тест будет раскручивать тесты жасмина - так как жасмин будет вызывать node в этих файлах спецификаций без флага отладки. Я попробовал это, и вот что я получил:

node --debug-brk=3691 --nolazy ../../../usr/local/bin/grunt kftest --schema=9.2.1 --dbtype=sqlite --target=builder/properties --spec=test/builder/properties/properties-spec.js 
Debugger listening on port 3691
Running "kftest" task
>> going to run with spec:  test/builder/properties/properties-spec.js
>> command: node --debug-brk=46307 /Users/computername/project/node_modules/jasmine-node/lib/jasmine-node/cli.js test/builder/properties/properties-spec.js
Running "shell:kftest" (shell) task
Debugger listening on port 46307

Это не слишком полезно, так как теперь отладчик vscode будет смотреть на 3691, а 46307 не проверяется ничем - и я не знаю, как сообщить vscode, чтобы он также прослушивал этот порт.

Soooo, что я в итоге сделал, заключался в следующем: answer Отладка тестов jasmine- node с node -инспектором

В основном мой vscode launch.json включал конфигурацию, которая выглядела так:

{
  "name": "Jasmine-Node Debugging",
  "cwd": "${workspaceRoot}",
  "program": "${workspaceRoot}/node_modules/jasmine-node/lib/jasmine-node/cli.js",
  "request": "launch",
  "type": "node",
  "args": [
    "test/builder/properties/properties-spec.js"
  ]
}

Надеюсь, что это поможет.