Как отлаживать тесты 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 или результат вышеуказанной конфигурации запуска.
Ответы
Ответ 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"
]
}
Надеюсь, что это поможет.