Вибачте за те, що додав ще одну відповідь, але жоден з попередніх не працював для мене, ніж VS Code 1.8.1 та стандартний відладчик Node, включений до нього. Ось як я це вирішив (із вказівками з попередніх відповідей тут і з офіційного документа VS Code Node.js налагодження ), так що є налагодження одним клацанням / натисканням клавіші:
- Переконайтеся , що мокко встановлюються як
devDependencyін packages.json:"devDependencies": { "mocha": "^3.2", ... }
- Запустіть
npm installу своєму каталозі, package.jsonщоб переконатися, що мока зараз встановленоnode_modules/
- Відкрийте
.vscode/launch.json(або в коді VS, натисніть F1, почніть вводити "запуск" і виберіть "Налагодження: відкрити запуск.json")
- Клацніть синю кнопку "Додати конфігурацію" в нижньому правому куті (або просто скопіюйте та вставте одну з інших); цей крок необов’язковий ... Я маю на увазі, ви можете повторно використовувати наявний конфігурацію. Але я пропоную додати його, щоб він не був менш заплутаним.
- Змініть наступне у своєму
launch.json, а потім виберіть нове ім’я конфігурації у вікні налагодження у коді VS та натисніть зелену стрілку, щоб почати налагодження вашого вузла + мок-тестів!
У новій конфігурації в launch.json:
"configurations": [{
"name": "whatever name you want to show in the VS Code debug list",
"type": "node",
"cwd": "${workspaceRoot}",
"program": "${workspaceRoot}/node_modules/mocha/bin/mocha",
"args": ["--debug-brk=5858", "--no-timeouts", "--colors", "test/**/*.js"],
"address": "localhost",
"port": 5858,
// the other default properties that are created for you are fine as-is
}, ...]
Це передбачає, що модель test/**/*.jsбуде працювати для того, де ви поставите свої тести. Зміна відповідно.
Не соромтеся змінювати порт, доки ви зміните його в обох властивостях argsта portвластивостях, щоб вони відповідали.
Ключові відмінності для мене полягали в тому node_modules, programщоб переконатись у тому , що мока був у використанні, щоб вказати на виконуваний файл та argsпотребував debug-brk=xвказівки на порт, вказаний у port. Решта вище сказаного просто робить речі гарнішими та легшими.
Якщо ви помістите .vscode/launch.jsonу сховище чи ні, це залежить від вас та вашої команди . Це файл, призначений лише для IDE, але вся ваша команда могла використовувати його так, без проблем, оскільки всі шляхи та встановлення відносні та явні.
Порада. Тег package.jsonможе включати scriptsтег, який також запускає мочу з чимось подібним "test": "./node_modules/.bin/mocha", але він не використовується кодом VS - замість цього він використовується, коли npm testзапускається в командному рядку. Цей трохи заплутав мене. Відзначивши це тут, якщо інші теж заплутаються.
EDIT: Код VS 1.9.0 додав параметр "Додати конфігурацію" у спадному меню конфігурації налагодження, і ви можете вибрати "Модельні тести Node.js", які допоможуть спростити більшу частину вищезазначеного. Вам все-таки потрібно переконатися, що мока є у вас, node_modulesі, можливо, доведеться оновити cwdостанній runtimeArgs(що є зразком для пошуку ваших тестів), щоб вказати на відповідні шляхи. Але як тільки ви встановите ці два властивості, він звідти повинен працювати набагато.
"args"блок:"--require", "${workspaceFolder}/tools/testSetup.js",