web-dev-qa-db-ja.com

Visual Studio Community 2015のプロファイリングテスト

Web上の投稿では、Visual Studioで右クリックして[プロファイルテスト]を選択することで、テストのプロファイルを作成できることが示唆されています。 http://adamprescott.net/2012/12/12/performance-profiling-for-unit- tests / しかし、NUnitテストの場合は「テストの実行」と「テストのデバッグ」のみが表示され、xUnit.NETの場合も同じです。テストのプロファイルを作成するために何が欠けていますか?これはCommunityエディションでサポートされていないだけですか、それとも一部の構成またはコンポーネントがありませんか?

(Communityで実行可能ファイルをプロファイルできるので、Communityでサポートされていない場合は奇妙に思えます。したがって、テストを実行する実行可能ファイルを作成し、それをプロファイルすることでこの問題を回避することができます。 )

NUnitの再現手順:Visual Studio Community 2015で新しいC#ライブラリプロジェクトを作成し、 http://nunit.org/index.php?p=quickStartSource&r=2.6.4 のコンテンツを新しいファイルに貼り付け、次のようにNuGetパッケージをインストールしました。

<packages>
  <package id="NUnit" version="2.6.4" targetFramework="net452" />
  <package id="NUnit.Runners" version="2.6.4" targetFramework="net452" />
  <package id="NUnitTestAdapter" version="2.0.0" targetFramework="net452" />
</packages>

Visual Studioを再起動しました。テストエクスプローラーにテストが表示されて実行できますが、右クリックメニューで「プロファイルテスト」オプションを使用できません。また、xUnit.netの同等の手順を試しましたが、喜びはありませんでした。

27
Neil Brown

古い質問に回答してすみませんが、今日のVS Community 2015でNUnitテストのプロファイルを作成する方法で現在の回答を改善できると思いました。

NUnitテストランナーを実行可能ファイルとしてプロファイリングする

  1. VS2015を管理者として実行していることを確認してください。
  2. ツールバーのAnalyze> Performance Profiler ...をクリックします。
  3. パフォーマンスウィザードを選択し、開始をクリックします。
  4. ページ1:私の場合、割り当てを確認したいので。NETメモリ割り当てをクリックしました。
  5. ページ2:オプション実行可能ファイル(.EXEファイル)をオンのままにして、続行します。
  6. ページ3:このページでは、実行する実行可能ファイルを定義する必要があります。

    これは、NUnitのテストランナー_nunit3-console.exe_、またはテストフレームワークに相当するものです。

    • 実行可能ファイルへのフルパスは何ですか? C:\Program Files (x86)\NUnit.org\nunit-console\nunit3-console.exe
    • コマンドライン引数:_bin\Debug\Test.dll --inprocess --test TestNamespace.TestClassName.Test_Method_Name_
    • 作業ディレクトリ:_\\MAC\Home\Documents\GitHub\ApplicationName\Test_

これらのパスをシステムに適したパスに置き換える必要があります。 _--inprocess_スイッチを使用すると、テストがNUnitプロセスからインラインで実行されます。このスイッチがないと、子プロセスが生成され、プロファイラーが動作しているように見えても、自分のコードではなくnunit3-console.exeをプロファイリングしているだけです。

  1. ページ4:完了をクリックします。

    プロファイラーはレポートファイルを生成し、作業ディレクトリに保存することに注意してください。私の場合、作業ディレクトリはUNC共有であったため、プロファイラーが起動する前にレポートを保存するローカルフォルダーパスを選択する必要がありました。

    NUnitランナーの出力が表示された端末ウィンドウが短時間表示されます。ウィンドウは自動的に閉じるため、赤いテキストのフラッシュが表示された場合、エラーが消える前にエラーを読む時間はありません。コマンドをページ3からコマンドプロンプトにコピーして、もっとゆっくり読むことができます。

  2. コマンドが実行された後(コマンドが成功したかどうかに関係なく)、テストで発生した割り当ての数を追跡できるレポートを取得する必要があります。

残念ながら、小さなテストでの割り当ては、おそらくNUnit.Framework自体によって引き起こされる割り当てによって影が薄くなるでしょう。結果からそれらを除外する方法があるかどうかを確認するために周りをクリックしましたが、それを行う方法を見つけられなかったので、私はそれらを無視しました。

別のテストのプロファイルを作成する場合は、パフォーマンスエクスプローラーを開き、_nunit3-console.exe > Properties_を右クリックしてコマンドライン引数を変更し、_Actions > Start Profiling_をクリックしてレポートを更新します。

結論

このソリューションは、単一のNUnitテストの結果のプロファイリングに成功しますが、そのステートメントにはいくつかの注意事項があります。

プロファイリングする別の実行可能ファイルを作成するよりもやや不快感が少なく、レポートにNUnitの割り当てが表示されるため、非常に機密性の高いプロファイリングを行う必要がある場合、それが非スターターになる可能性があります。

VS 2015の経験が豊富な人は、レポートからNUnit.Frameworkdllを除外する方法に関するヒントを使用して、この答えを改善するのに役立つかもしれません。

13
Jeremy Liberman

答えは、質問で参照されているAdam Prescottページのコメントにあるようです。

2013年8月16日午後4時57分

残念ながら、MSDNによれば、この機能はPremiumエディションとUltimateエディションでのみ利用可能です。

http://msdn.Microsoft.com/en-us/library/ms182372.aspx

コメント内のリンクは、現在Visual Studioの2015エディションを参照しています。ページの 2010エディション は、Visual Studio 2010のどのバージョンがプロファイリングをサポートしているかを明確に示しています。 2012以降のバージョンのページでは、プロファイリングをサポートするバージョンの明確な声明が省略されています。

5
AdrianHHH

_vstest.console.exe_を使用して、MSTestテストのプロファイルを作成できます(テストアダプターを使用してnunit/xunitのプロファイルも作成できます)。

  • Analyze-> Performance Profilerからターゲットとして実行可能プログラムを選択します
  • _vstest.console.exe_のパスを提供します(通常はC:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\CommonExtensions\Microsoft\TestWindowにあります)
  • パラメーターとして_<full path to test dll file>.dll /TestCaseFilter:"FullyQualifiedName~<namespace>.<test class>"_としてパラメーターを提供します
  • NUnitまたはxUnitを使用している場合は、 nunitテストアダプター 、または xunitテストアダプター _/TestAdapterPath_引数を使用したパスを_vstest.console.exe_に指定します。

その他 vstest.exeにパラメーターを提供する方法に関する情報

5