Знаете ли вы, что вы просто заходите в свою конфигурацию запуска, помещаете курсор после других конфигураций или между ними и нажимаете ctrl-, spaceчтобы получить автоматически сгенерированную текущую действительную конфигурацию мокко?
Что отлично работает для меня. Включая остановку в точках останова. (У меня также был предыдущий, теперь устаревший, который больше не работал по разным причинам, связанным с настройками.)
Начиная с VSCode 1.21.1 (март 2018 г.) это дает:
{
"version": "0.2.0",
"configurations": [
{
"name": "Mocha (Test single file)",
"type": "node",
"request": "launch",
"runtimeArgs": [
"${workspaceRoot}/node_modules/.bin/mocha",
"--inspect-brk",
"${relativeFile}",
],
"console": "integratedTerminal",
"internalConsoleOptions": "neverOpen",
"port": 9229
}
}
На заметку: debug-brk
устарел (по крайней мере, для всех, у кого Node> = Version 8).
"args"
блоке:"--require", "${workspaceFolder}/tools/testSetup.js",
Ctrl+Space
автоматически созданной конфигурации тестов Mocha не былоdebug-brk
. Несмотря на то, что отладка с точками останова работала нормально.debug-brk
он больше не нужен, не поддерживается и не вставляется автоматически. Моя примечание только прояснило это, поскольку об этом упоминается во многих других ответах.ctrl + space
чтобы она работала.Если вы не хотите использовать
--debug-brk
+ Attach или указывать абсолютный путь к вашей глобальной установке mocha (что будет тормозить, если вы сохраните свой launch.json под контролем версий и у вас будет несколько разработчиков на разных машинах), установите mocha как зависимость разработчика и добавьте это в свой launch.json:Полная поддержка отладки в ваших тестах простым нажатием F5.
--no-timeouts
проверяет, не истекает ли время ожидания ваших тестов, потому что вы остановились на точке останова, и--colors
гарантирует, что Mocha выводит цвета, даже если он не обнаруживает, что VS Code поддерживает цвета.источник
sourceMaps: true
. Спасибо огромное!npm_config_myparam
блока env. Где на CLI это может выглядеть такnpm --myparam=myvalue test
.Другой способ - использовать параметр
--debug-brk
командной строки mocha и настройкуAttach
запуска по умолчанию отладчика Visual Studio Code.Предлагаемое более глубокое объяснение (от Андре)
Сделать это:
Запустите мокко из командной строки с помощью этой команды:
Теперь в VS Code щелкните значок «Отладка», затем выберите
Attach
параметр рядом с кнопкой «Пуск». Добавьте точки останова в VS Code и нажмите кнопку «Пуск».источник
"request": "attach"
файл launch.json, если он не существует - иначе он будет жаловаться, что вы должны указать программу или какую-либо другую ошибку.VS Code
конкретное. Не работает в нормальном VS 2015--debug-brk
настоящее время это не рекомендуется , поэтому я предлагаю автоматически создавать новую конфигурацию отладки в vscode , да, также специально для мокко.Я проделал эту работу над VSCode в OS X 10.10. Просто замените свой
./settings/launch.json
файл этим.Его также можно найти здесь .
Ключевыми значениями, которые вам нужно изменить, являются
program
:, которые должны быть установлены для_mocha
исполняемого файла, иargs
, которые должны быть массивом ваших тестовых файлов.источник
OpenDebug process has terminated unexpectedly
"runtimeExecutable"
в"C:/Program Files/nodejs/node.exe"
или где установлен Node?Я заставил его работать с VS Code (1.8.2) в Mac OS X:
Mocha необходимо установить в каталог модулей npm.
источник
Debug > Add Configuration...
менюNode.js
средуMocha Tests
вариант из появившегося выпадающего спискаargs
свойства.breakpoint
Debug
значокMocha Tests
в качестве конфигурацииStart debugging
кнопкуисточник
Я нашел способ сделать это, и классифицирую его как обходной путь . Я ожидаю, что команда Visual Studio Code предоставит более определенное решение для этого, но пока что я сделал следующее:
./settings/mocha.js
файл, который запускает mocha, программно передавая аргументы в виде списка файлов для запуска. Вы можете увидеть полный файл здесь ;Я создал запуска конфигурации , которая будет работать
./settings/mocha.js
какprogram
и передает файлы / файлы шаблонов нам нужно проверить в качестве аргументов:Полный пример launch.json
Так что это эквивалент действия,
mocha test/unit/*.js test/unit/**/*.js
и теперь мы можем использовать точки останова в наших тестах мокко.источник
'sourceMaps': true, 'outDir': './build'
в свою конфигурацию запуска.Если вы добавите переменную $ {file} в конец списка аргументов, вы можете начать отладку прямо из открытого файла:
источник
Извините за добавление еще одного ответа, но ни один из предыдущих ответов не работал у меня с VS Code 1.8.1 и включенным в него стандартным отладчиком Node. Вот как я это решил (с помощью предыдущих ответов здесь и из официальных документов VS Code Node.js Debugging ), поэтому есть отладка одним щелчком / нажатием клавиши:
devDependency
вpackages.json
:"devDependencies": { "mocha": "^3.2", ... }
npm install
в своем каталоге,package.json
чтобы убедиться, что мокко теперь установлен вnode_modules/
.vscode/launch.json
(или в VS Code нажмите F1, начните вводить «запуск» и выберите «Отладка: открыть launch.json»)launch.json
, затем выберите новое имя конфигурации в окне отладки в VS Code и нажмите зеленую стрелку, чтобы начать отладку тестов node + mocha!В новом конфиге в
launch.json:
Это предполагает, что шаблон
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 Code - вместо этого он используется приnpm test
запуске из командной строки. Это немного смутило меня. Отметив это здесь, если другие тоже запутаются.РЕДАКТИРОВАТЬ: VS Code 1.9.0 добавил параметр «Добавить конфигурацию» в раскрывающемся списке конфигурации отладки, и вы можете выбрать «Тесты Node.js Mocha», которые помогают упростить большую часть вышеперечисленного. Вам все равно нужно убедиться, что мокко в вашем
node_modules
и, возможно, придется обновитьcwd
и последнийruntimeArgs
(который является шаблоном для поиска ваших тестов), чтобы указать на соответствующие пути. Но как только вы установите эти два свойства, они должны работать в значительной степени оттуда.источник
в launch.json добавьте еще 1 конфигурацию ниже
если вам нужно настроить версию узла, просто добавьте
runtimeExecutable
такое полеисточник
1) Перейти к
затем
файл
2) Добавьте следующую конфигурацию в launch.json -
3) Установите точки останова в тестовом файле и нажмите
F5
источник
Для всех, кто использует Windows. Если вы установили мокко глобально, то установка программы на следующий путь сработала для меня (замените свое имя пользователя).
источник
Это работает для меня на машине с Windows 7. У меня есть мокко, установленный глобально, но эта конфигурация указывает на установку проекта, чтобы избежать необходимости в пути к профилю пользователя (который, кстати, я пытался использовать переменную% USERPROFILE%, но безуспешно). Теперь я могу устанавливать точки останова в своих тестах мокко. Ура!
источник
Для тех, кто использует grunt или gulp, настройка довольно проста.
Launch.json
Gruntfile.js
источник
В VSCode версии 1.13.0 (macOS) он встроен в конфигурацию ->
Mocha Tests
.источник
При использовании Babel или создании файлов javascript, но с размещением точек останова в источнике - вы должны обязательно включить
sourceMaps
и определитьoutFiles
. Вот пример конфигурации, которая у меня сработала.Примечание. Вам нужно будет изменить,
outFiles
чтобы включить все, что вы, возможно, захотите добавить точку останова. Это может быть более утомительным, когда в монорепозитории и нескольких зависимых проектах.источник
При использовании TypeScript у меня работает следующая конфигурация в Visual Studio Code 0.8.0 (tsc 1.5.3)
tsconfig.json
Здесь важно отметить, что исходные карты генерируются и что выходной каталог для js установлен на
build
launch.json
Обратите внимание, что для параметра
sourceMaps
установлено значение,true
а для параметраoutDir
-build
отлаживать
index.ts
любой другой импортированный файл машинописного текстаmocha --debug-brk ./build/test/appTests.js
источник
Вот пример конфигурации запуска (launch.json) от Microsoft, которая работает с Mocha и позволяет использовать отладчик.
Также есть описание того, как использовать параметр --debug-brk.
Наконец, вот альтернативная версия того, как отлаживать код с помощью тестов Mocha, используя файл tasks.json VS Code и Gulp task runner.
источник
Если у вас есть какая-то зависимость в тесте, ее также легко прикрепить.
Например, я использую
mongo-unit-helper
также модульные тесты, интегрированные с базой данных.package.json
сценарий:mocha --recursive --require ./test/mongo-unit-helper.js --exit"
Мой
launch.json
выглядит так:Решение - поставить
--require
отдельноargs
вlaunch.json
.источник
Самое простое решение
Добавьте следующий код в файл launch.json внутри папки .vscode:
Однако вы можете также добавить аргумент тайм-аута:
источник