Как правильно включить отладчик узла с помощью переключателя mocha --debug-brk?


У меня есть некоторые операторы отладчика в моем тестируемом модуле и я хочу запустить mocha с --debug-brk set и ударить по моей точке останова, чтобы я мог проверить состояние моего модуля. К сожалению, всякий раз, когда я запускаю mocha с этой опцией, я получаю пустой курсор на следующей строке. Я могу ввести текст, но нет ничего, что, кажется, обрабатывает мои команды (это, конечно, не похоже на отладчик узла):

$ mocha --debug-brk tests.js -R spec
debugger listening on port 5858
[BLANK CURSOR]

Я делаю что-то не так с тем, как я запускаю мокко?

5 59

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 года)