テスト中のモジュールにいくつかのデバッガーステートメントがあり、モジュールの状態を検査できるように、-debug-brkを設定してmochaを実行し、ブレークポイントにヒットする必要があります。残念ながら、このオプションを使用してmochaを実行すると、次の行に空白のカーソルが表示されます。テキストを入力できますが、コマンドを処理しているように見えるものは何もありません(確かにノードデバッガーのようには見えません)。
$ mocha --debug-brk tests.js -R spec
debugger listening on port 5858
[BLANK CURSOR]
モカを起動する方法に何か問題がありますか?
元の質問に答えるには、node-inspector
を調べることをお勧めしますが、--debug
または--debug-brk
flagsの代わりに、debug
オプションを使用してmochaを介してノードに組み込まれたCLIデバッガーを使用できます。 (ダッシュがないことに注意してください。)
あなたの例では、代わりに次のようになります:
$ mochadebugtests.js -R spec debugger listen on port 5858 connecting ... ok 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
はダッシュなしの太字の上記のとおりです。 (=
Nodejs( > = v6.3. )とmocha( > = 3.1. )の最新バージョンを使用すると、 V8インスペクター統合 を使用できます。
V8 Inspectorの統合により、Chrome DevToolsをNode.jsインスタンスにアタッチして、デバッグとプロファイリングを行うことができます
使用法
--inspect
はV8インスペクター統合をアクティブにし、--debug-brk
は最初にブレークポイントを追加します。 nodejs v7.6. および mocha v3.3. であるため、--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テストスクリプトがある場合、end of option delimiter--
を使用して、npmからmochaスクリプトにオプションを渡すことができます。
$ npm test -- --inspect --debug-brk
クロームチップ
毎回URLをコピーして貼り付ける代わりに、chrome://inspect
に移動し、[リモートターゲット]セクションの適切なリンクをクリックします。
node-inspector を使用してこれを機能させることができました。 1つのシェルに表示されるようにテストを実行します。
mocha --debug-brk mocha/test.js
次に、2番目のシェルでノードインスペクターを実行します。
node-inspector
ノードインスペクタがブラウザで出力するURLを表示すると、Webインスペクタでデバッグできます。
http://127.0.0.1:8080/debug?port=5858
Node-insectorがインストールされている場合は、実際にnode-inspectorを最初に実行せずにMochaテストをデバッグできます。最も簡単な方法は
node-debug _mocha
chrome(Safariでも動作します)でノードテストのデバッグを開始する必要があります
テストが機能しないことがわかった理由の1つは、 http:// localhost:8080/debug?port = 5858 または http://127.0.0.1: 8080/debug?port = 5858
フラグ--inspect-brk
でmochaを実行し、chromeページからchrome://inspect
。]で[ノードの専用DevToolsを開く]をクリックします。専用DevToolsウィンドウで接続localhost:9229
を追加して接続します自動的に。
また、デバッグするファイルにdebugger
ステートメントを追加します。
(これはノードの最新バージョンとchrome 2017年10月現在)を使用しています)