45

2016年11月の編集:ノードには、で開始できるデバッガーが組み込まれています--inspect。この答えはそれを説明しています:https ://stackoverflow.com/a/39901169/30946 。

私はcoffeescriptでモカテストを作成しています。私が持っているテストの一番上に:

require "../assets/js/theObject.coffee"
debugger
ss = new TheObject()

のオブジェクトがロードされていないため、そのデバッガー行で停止したいと思いますtheObject.coffee。私はノードインスペクターを使用していますが、それは機能します。

私が持っているプロセスは次のとおりです。

  1. node-inspectorを開始します
  2. 次のコマンドラインでテストを実行しますmocha --compilers coffee:coffee-script ./test/theObjectTests.coffee --ui bdd -d --debug-brk
  3. ノードインスペクターページに移動し、すでに開いている場合は更新します
  4. ファイルがロードされるのを待ってtheObject.coffeeから、正しい行にブレークポイントを設定します

もっと簡単な方法があるはずです。デバッガーを実行して、そのデバッガー行で停止させることができるはずですが、それを見つけることができません。

デバッガーを備えたWebStormがあります(この記事では、モカテストを実行するためのセットアップについて説明していますが、役に立ちませんでした)が、起動すると失敗します。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固有の問題である可能性があります。

環境:Windows 7、Webstorm、ノード0.8.16、mocha 1.7.4、git-bash

質問:Mochaを最初から使用する場合、デバッガーラインで簡単に停止するデバッガーを実行するための最も簡単な方法は何ですか?ここでのキーワードはEasyです。

編集:これを尋ねてから、私はWindowsの使用をやめ、Ubuntuで作業しています。私のモカのデバッグプロセス(私はめったに使用しません)は同じです。

4

10 に答える 10

11

上記の @jcollum の回答に加えて、--debug-brk フラグを使用する代わりに、-w (watch) で --debug フラグを使用することをお勧めします。

そうすれば、コードにデバッガー行を追加および削除すると、mocha はテストを自動的にリロードし、node-inspector は適切な行で一時停止します。

これにより、端末に何度もアクセスしてテストを再起動し、デバッガーで不必要に「続行」を押してソースの最初の行を通過する必要がなくなります。

于 2014-03-19T03:53:38.580 に答える
8

Mocha とnode-inspectorの最新バージョンでは、これはうまく機能しています。

$ node-debug ./node_modules/mocha/bin/_mocha

デバッグされたプロセスとしてローカルの Mocha 実行可能ファイルをロードし、ブレークポイントを設定するために最初の行で停止します。

于 2015-06-21T20:17:08.243 に答える
5

WebStorm ノード デバッガーを使用する別の方法。

要するに:

  1. WebStormが必要です
  2. WebStorm で新しい Node デバッグ プロファイルを作成する
  3. モカバイナリへのパスを設定しますPath to Node App JS File
  4. ブレークポイントを追加し、WebStorm からセッションを開始します

Glenn Block によるスクリーンショット付きの詳細な説明。

于 2013-10-07T08:07:27.103 に答える
3

ノード アプリケーションの場合は、統合されたノード デバッガーをコマンド ラインから使用することが、スターダムへの最短の道です。

$ mocha $args -- debug
于 2016-03-05T20:26:38.713 に答える
0

Mochaテストをデバッグする必要がある場合は、デバッグしたい値をチェックする別の assert を追加するだけで済みます

myVar.should.equal(expected);

多くの場合、これで十分です。そして、完了したら、デバッグに使用した余分なアサートを削除します。

于 2016-03-20T17:08:10.837 に答える