2016年11月の編集:Nodeには、--inspect
で開始できる組み込みのデバッガーがあります。この答えはそれを説明しています: https://stackoverflow.com/a/ 39901169/30946 。
私はcoffeescriptでモカテストを作成しています。私が持っているテストの一番上に:
require "../assets/js/theObject.coffee"
debugger
ss = new TheObject()
theObject.coffee
のオブジェクトがロードされていないため、そのデバッガー行で停止したいです。私はノードインスペクターを使用していますが、うまくいきます。
私が持っているプロセスは次のとおりです。
mocha --compilers coffee:coffee-script ./test/theObjectTests.coffee --ui bdd -d --debug-brk
を使用してコマンドラインでテストを実行しますtheObject.coffee
がロードされるのを待ってから、正しい行にブレークポイントを置きますもっと簡単な方法が必要です。デバッガーを実行して、そのデバッガー行で停止させることができるように思えますが、それを見つけることができません。
WebStormにはデバッガーがあります( この記事で説明します mochaテストを実行するように設定していますが、助けにはなりませんでした)が、起動すると失敗します。 WebStormデバッグウィンドウで実行されているコマンドは次のとおりです。
"C:\Program Files\nodejs\node.exe" --debug-brk=64232 C:\Users\jcollum\AppData\Roaming\npm\_mocha
C:\Users\jcollum\AppData\Roaming\npm\_mocha:2
basedir=`dirname "$0"`
これはWindows固有の問題であると思われます。
Env:Windows 7、Webstorm、ノード0.8.16、mocha 1.7.4、git-bash
質問:Mochaをゼロから始めている場合、デバッガーラインで簡単に停止するデバッガーを実行する最も簡単な方法は何ですか?ここでキーワードは簡単です。
編集:これを尋ねて以来、私はWindowsの使用をやめ、Ubuntuで働いています。私のmochaデバッグプロセス(私はあまり使用しません)は同じです。
編集、数年後:Node 6+の最短パスは:Node Inspector Managerと組み合わせたmocha --debug-brk --inspect ./test.js
プラグイン。
数週間後、答えはありません。これが私が見つけた最も速い道です。
node-inspector
node-inspector
-5858でリッスンします--debug-brk
でモカテストを開始しますdebugger
が含まれる行で停止します。コードファイルのウィンドウが適切な場所に移動しない場合があるため、F10キーを押して次の行に移動し、ファイル内の場所を表示する必要があります。コマンドライン:
node-inspector & mocha --compilers coffee:coffee-script/register ./test/appTests.coffee --ui bdd -d -g "should X then Y" --debug-brk
上記の@jcollumの回答に加えて、-debug-brkフラグを使用する代わりに、-debugフラグを-w(ウォッチ)と共に使用することをお勧めします
このようにして、コードにデバッガー行を追加および削除すると、mochaはテストを自動的に再読み込みし、ノードインスペクターは適切な行で一時停止します。
これにより、ターミナルを再訪してテストを絶えず再起動し、ソースの最初の行を通過するために不必要にデバッガで「続行」を押す必要がなくなります。
Mochaの最新バージョンと node-inspector を使用すると、これは非常にうまく機能しています。
$ node-debug ./node_modules/mocha/bin/_mocha
ローカルのMocha実行可能ファイルをデバッグプロセスとしてロードし、ブレークポイントを設定するための最初の行で停止します。
http://s-a.github.io/iron-node/ に注目してください。これは、Node.jsに関連するものをデバッグするための最も効率的なソフトウェアです。
$ iron-node ./node_modules/mocha/bin/_mocha
WebStormノードデバッガを使用する代替方法。
要するに:
Path to Node App JS File
に設定します詳細な手順 Glenn Blockのスクリーンショット付き。
Nodeアプリケーションの場合、コマンドラインから統合されたNodeデバッガーを使用することが、スターダムへの最短パスです。
$ mocha $args -- debug
Webstormでは、mocha
構成を使用してセットアップすることができます。すぐに使えるようになりました:
Node interpreter: /usr/local/bin/node
Working directory: /Users/me/sites/mysite
Mocha Package: /Users/me/sites/mysite/node_modules/mocha
その後
All in directory
Test directory: /Users/me/sites/mysite/test
また、実行するパラメーターも表示されるため、必要に応じて別の環境にコピーできます。
WebstormまたはPhpStormに関して、特定のmochaデバッグ構成を追加できます。
緑色で追加する必要があります。名前を付けることができます。
すでにプロジェクトにモカがインストールされている場合:
npm install mocha --save
または
yarn add mocha
プロジェクト内の対応するモジュールが見つかります。
ユニットテストへの正しいパスを指定し、Include subdirectories
/
私のプロジェクトはTypeScriptであるため、追加する必要がありました。
yarn add ts-node
純粋なjsプロジェクトの場合、必要ではないはずです。
これで、テストスーツ全体を実行でき、リストから単一のテストケースを選択して実行し、独自にデバッグできます。
既存の回答のどれにも言及されていない最小抵抗のパス:Mochaテストをデバッグする必要がある場合は、チェックする別のアサートを追加するだけです)デバッグする値。
myVar.should.equal(expected);
多くの場合、これで十分です。そして、完了したらデバッグに使用した余分なアサートを削除します。
これを行う最新の方法は、nodejsの インスペクター統合機能 を使用することです。使い方はとても簡単です。 この投稿 での使用方法の詳細な説明をすでに書いています。