Programing

mocha의 --debug-brk 스위치로 노드 디버거를 활성화하는 올바른 방법은 무엇입니까?

lottogame 2020. 11. 23. 07:35
반응형

mocha의 --debug-brk 스위치로 노드 디버거를 활성화하는 올바른 방법은 무엇입니까?


테스트중인 모듈에 몇 가지 디버거 문이 있고 --debug-brk 세트로 mocha를 실행하고 중단 점에 도달하여 모듈의 상태를 검사 할 수 있습니다. 불행히도이 옵션으로 모카를 실행할 때마다 다음 줄에 빈 커서가 생깁니다. 텍스트를 입력 할 수 있지만 명령을 처리하는 것처럼 보이는 것은 없습니다 (확실히 노드 디버거처럼 보이지 않음).

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

모카 런칭 방식에 문제가 있습니까?


원래 질문에 답하려면 다음을 살펴볼 것을 제안합니다 . 또는 플래그 대신 옵션을 사용 node-inspector하여 mocha를 통해 노드에 내장 된 CLI 디버거를 사용할 수 있습니다 . (대시가 없음에 유의하십시오.)debug--debug--debug-brk

귀하의 예에서는 대신 다음과 같습니다.

$ mocha debug tests.js -R spec
포트 5858에서 수신 대기하는 디버거
연결 중 ... 좋아요
node_modules / mocha / bin / _mocha : 7에서 중단
  5 * /
  6 
  7 var 프로그램 = require ( 'commander')
  8, sprintf = require ( 'util'). format
  9, 경로 = require ( 'path')
디버그> [CURSOR]

다시 말하지만, debug위와 같이 굵은 글씨로 대시가 없습니다. (=

관련 : https://github.com/visionmedia/mocha/issues/247


최신 버전의 nodejs ( > = v6.3.0 ) 및 mocha ( > = 3.1.0 )를 사용하면 V8 검사기 통합을 사용할 수 있습니다 .

V8 Inspector 통합을 통해 디버깅 및 프로파일 링을 위해 Chrome DevTools를 Node.js 인스턴스에 연결할 수 있습니다.

용법

--inspectV8 검사기 통합을 활성화 --debug-brk하고 시작 부분에 중단 점을 추가합니다. nodejs v7.6.0mocha 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 스크립트 사용

mocha를 사용하는 npm 테스트 스크립트가있는 경우 옵션 구분 기호 끝을 사용하여 npm에서 mocha 스크립트로 옵션을 전달할 수 있습니다 --.

$ npm test -- --inspect --debug-brk

크롬 팁

매번 URL을 복사하여 붙여 넣는 대신 chrome://inspect"원격 대상"섹션으로 이동 하여 해당 링크를 클릭하십시오.


node-inspector를 사용하여 이것을 작동시킬 수있었습니다 . 하나의 셸에 표시된 것처럼 테스트를 실행합니다.

mocha --debug-brk mocha/test.js

그런 다음 두 번째 셸에서 node-inspector를 실행합니다.

node-inspector

Node-inspector가 브라우저에서 뱉어 낸 URL을 가져 오면 웹 검사기로 디버깅 할 수 있습니다.

http://127.0.0.1:8080/debug?port=5858

node-insector가 설치되어 있다면 실제로 node-inspector를 먼저 실행하지 않고도 Mocha 테스트를 디버깅 할 수 있습니다. 가장 쉬운 방법은

node-debug _mocha

Chrome에서 노드 테스트 디버깅을 시작해야합니다 (Safari에서도 작동 함).

테스트가 작동하지 않는 한 가지 이유는 때때로 http : // localhost : 8080 / debug? port = 5858 또는 http://127.0.0.1:8080/debug?port=5858 을 시도하기 때문입니다 .


플래그 --inspect-brk함께 mocha를 실행 하고 페이지에서 크롬의 '노드 전용 DevTools 열기'를 클릭하십시오 chrome://inspect. 전용 DevTools 창에서 연결 localhost:9229추가 하여 자동으로 연결 합니다.

또한 debugger디버그하려는 파일에 명령문을 추가하십시오 .

(2017 년 10 월 현재 최신 버전의 노드 및 크롬을 사용하고 있습니다.)

참고URL : https://stackoverflow.com/questions/14352608/whats-the-right-way-to-enable-the-node-debugger-with-mochas-debug-brk-switch

반응형