Как правильно включить отладчик узла с помощью переключателя mocha --debug-brk?
У меня есть некоторые операторы отладчика в моем тестируемом модуле и я хочу запустить mocha с --debug-brk set и ударить по моей точке останова, чтобы я мог проверить состояние моего модуля. К сожалению, всякий раз, когда я запускаю mocha с этой опцией, я получаю пустой курсор на следующей строке. Я могу ввести текст, но нет ничего, что, кажется, обрабатывает мои команды (это, конечно, не похоже на отладчик узла):
$ mocha --debug-brk tests.js -R spec
debugger listening on port 5858
[BLANK CURSOR]
Я делаю что-то не так с тем, как я запускаю мокко?
5 ответов:
чтобы ответить на исходный вопрос, хотя я также предлагаю вам взглянуть в
node-inspector
: вы можете использовать отладчик CLI, встроенный в узел через mocha с , вместо--debug
или--debug-brk
флаги. (Обратите внимание на отсутствие тире.)в вашем примере, вместо того, что бы:
$ mocha debug tests.js -R spec debugger listening on port 5858 connecting... ok break in node_modules/mocha/bin/_mocha:7 5 */ 6 7 var program = require('commander') 8 , sprintf = require('util').format 9 , path = require('path') debug> [CURSOR]опять
debug
как указано выше жирным шрифтом, без тире. (=соответствующие: https://github.com/visionmedia/mocha/issues/247
использование последней версии nodejs (>=В6.3.0) и мокко ( > =3.1.0), вы можете использовать интеграция инспектора V8.
интеграция инспектора V8 позволяет прикреплять Chrome DevTools к узлу.js экземпляры для отладки и профилирования
использование
--inspect
активирует интеграцию инспектора V8 и--debug-brk
добавляет точку останова в начале. Так как nodejs В7.6.0 и мокко v3.3. 0 можно использовать--inspect-brk
обозначение--inspect --debug-brk
$ mocha --debug-brk --inspect Debugger listening on port 9229. Warning: This is an experimental feature and could change at any time. To start debugging, open the following URL in Chrome: chrome-devtools://devtools/remote/serve_file/@62cd277117e6f8ec53e31b1be58290a6f7ab42ef/inspector.html?experiments=true&v8only=true&ws=localhost:9229/node
со скриптами npm
если у вас есть тестовый сценарий npm, который использует mocha, вы можете передать параметры из npm в сценарий mocha с помощью конец варианта разделителя
--
:
$ npm test -- --inspect --debug-brk
хромированием
вместо того, чтобы копировать и вставлять URL-адрес каждый раз, перейдите к
chrome://inspect
и нажмите на соответствующую ссылку в разделе" Удаленная цель".
я смог заставить это работать с помощью узел-инспектор. Я запускаю свой тест, как вы показываете в одной оболочке:
mocha --debug-brk mocha/test.js
а затем запустить node-inspector во второй оболочке:
node-inspector
вывод URL-адреса, который node-inspector выплевывает в браузере, позволяет мне отлаживать веб-инспектор.
http://127.0.0.1:8080/debug?port=5858
Если у вас установлен Node-insector, вы можете отлаживать тесты Mocha без фактического запуска node-inspector. Самый простой способ-это
node-debug _mocha
Это должно начать отладку тестов узлов в chrome (также работает на Safari)
одной из причин я видел, что тесты не работают, иногда вы дали попробовать http://localhost:8080/debug?порт=5858 или http://127.0.0.1:8080/debug?порт=5858
запустить мокко с флагом
--inspect-brk
и нажмите "Открыть выделенные DevTools для узла" в chrome со страницыchrome://inspect
. В выделенное окно инструментов разработчика добавить подключениеlocalhost:9229
автоматическое подключение.добавить
debugger
инструкция к файлу, который вы хотите отладить.(это использование последних версий node и chrome по состоянию на октябрь 2017 года)