Visual Studio 2012でResharperを使用してJasmineテストを実行するときにJavaScriptコードをデバッグ(ウォークスルー)する方法が見つかりません。ブラウザー(Chrome)でテストを実行しようとしましたが、テストランナーはそのため、コードにブレークポイントを配置できません。また、Internet Explorerで実行してVisual Studioにブレークポイントを配置しようとしましたが、プロセスにアタッチされません。私のテストには、Resharperがテストランナーに自動的に含める多くの///参照スクリプトがありますが、デバッグしたいすべてのテストに対して手動でこれを行うのは望ましくありません。これを理解してください。失敗しているジャスミンテストがある場合、どのようにデバッグしますか?
debugger
キーワードを使用してみてください。デバッグするコードに次の行を追加するだけです(おそらく仕様に追加します)。
debugger;
利用可能なデバッグ機能を呼び出します。 IEでは動作しませんが、Chromeで十分に動作します(使用したのでデバッグに十分だと思います)。
もちろん、その後は必ずdebugger
キーワードを削除してください!おそらく生産コード全体でそれを回避する方法は本当に単純な方法はありません(spescだけでなく使用する場合)が、これに興味がある場合はSO question が役立つ可能性があります。
debugger;
動作するように私は別の解決策を見つけました。以下をテストに追加することにより、resharperはテストが終了したことを通知されないため、開いているブラウザーでデバッグブレークポイントを設定し(クロームを使用)、ページを更新(F5)できます。
jasmine.getEnv().currentRunner_.finishCallback = function () {};
Jasmine 2.0以降では、次を使用する必要があります。
ReSharperReporter.prototype.jasmineDone = function () { };
完了したら、resharper testrunnerウィンドウでテストを停止します。
また、これはQUnitのために行うことができます
QUnit.moduleDone = function(){}
私が に投稿したように、resharperおよびphantom js を使用したジャスミンテストのデバッグ
デバッガを入手しました。 ReSharperオプションでテストブラウザとしてIE 11を設定して動作します。クールなことは、Visual Studioバージョンのコードにブレークポイントを設定し、Visual Studioを使用して設定およびデバッグできることです。ブラウザーと対話する必要はありません。
これは古い質問であり、この回答はトピックから少し外れていますが、コールバックに干渉したくない場合は、Cutzpahテストランナーのコンテキストメニューがここでサポートできます。 resharper/phantomjsでテストを実行し(タブが爆発しないように)、右クリックで起動したChrome(またはお好みのブラウザー)でデバッグします。