web-dev-qa-db-ja.com

モカテストをデバッグするための最も抵抗の少ない経路は何ですか?

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

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

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

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

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

  1. ノードインスペクターを起動します
  2. mocha --compilers coffee:coffee-script ./test/theObjectTests.coffee --ui bdd -d --debug-brkを使用してコマンドラインでテストを実行します
  3. ノードインスペクターページに移動し、既に開いている場合は更新します
  4. ファイル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デバッグプロセス(私はあまり使用しません)は同じです。

40
jcollum

編集、数年後:Node 6+の最短パスは:Node Inspector Managerと組み合わせたmocha --debug-brk --inspect ./test.jsプラグイン。

数週間後、答えはありません。これが私が見つけた最も速い道です。

  1. モカテストを書く
  2. インストールnode-inspector
  3. start node-inspector-5858でリッスンします
  4. --debug-brkでモカテストを開始します
  5. この時点で、モカテストは最初の行で一時停止します
  6. webブラウザーを開き、localhost:5858に移動します
  7. (オプション:テストファイルの先頭にデバッガー行を追加し、そのファイルで停止した後にブレークポイントを設定します)
  8. f10を押してコードを取得します
  9. node-inspectorは、debuggerが含まれる行で停止します。コードファイルのウィンドウが適切な場所に移動しない場合があるため、F10キーを押して次の行に移動し、ファイル内の場所を表示する必要があります。

コマンドライン:

node-inspector & mocha --compilers coffee:coffee-script/register ./test/appTests.coffee --ui bdd -d -g "should X then Y" --debug-brk

60
jcollum

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

このようにして、コードにデバッガー行を追加および削除すると、mochaはテストを自動的に再読み込みし、ノードインスペクターは適切な行で一時停止します。

これにより、ターミナルを再訪してテストを絶えず再起動し、ソースの最初の行を通過するために不必要にデバッガで「続行」を押す必要がなくなります。

11
captainclam

Mochaの最新バージョンと node-inspector を使用すると、これは非常にうまく機能しています。

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

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

8
doingweb

http://s-a.github.io/iron-node/ に注目してください。これは、Node.jsに関連するものをデバッグするための最も効率的なソフトウェアです。

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

enter image description here

enter image description here

6
Stephan Ahlf

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

要するに:

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

詳細な手順 Glenn Blockのスクリーンショット付き。

5
Brock

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

$ mocha $args -- debug
3

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

また、実行するパラメーターも表示されるため、必要に応じて別の環境にコピーできます。

1
timhc22

WebstormまたはPhpStormに関して、特定のmochaデバッグ構成を追加できます。

Debug configuration

緑色で追加する必要があります。名前を付けることができます。

すでにプロジェクトにモカがインストールされている場合:

 npm install mocha --save

または

 yarn add mocha

プロジェクト内の対応するモジュールが見つかります。

ユニットテストへの正しいパスを指定し、Include subdirectories /

私のプロジェクトはTypeScriptであるため、追加する必要がありました。

yarn add ts-node

純粋なjsプロジェクトの場合、必要ではないはずです。

これで、テストスーツ全体を実行でき、リストから単一のテストケースを選択して実行し、独自にデバッグできます。

1
k0pernikus

既存の回答のどれにも言及されていない最小抵抗のパス:Mochaテストをデバッグする必要がある場合は、チェックする別のアサートを追加するだけです)デバッグする値

myVar.should.equal(expected);

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

0
Cory House

これを行う最新の方法は、nodejsの インスペクター統合機能 を使用することです。使い方はとても簡単です。 この投稿 での使用方法の詳細な説明をすでに書いています。

0
stropitek