2010-11-25 15 views
4

私はVisual Studio 2008 Development Editionから起動する統合テストを受けています(実際には統合テストでも、MSTest単体テストとして実行されます)。私はテストが実行されている間にいくつかのプロファイリングをしたいと思います。Visual Studio 2008でMsTestの単体テストをプロファイルする方法は?

私の場合は、私が実行しているMSTestの「注文」テストがあります。順序付けられたテストのそれぞれが実行されている間、サンプリングデータを収集したいと思います。

どうすればよいですか?

p.s. command line directionsに従おうとしているときに、コマンドプロンプトからmstestを手動で起動すると、コマンドラインからこれを実行できます。残念ながら、Visual StudioコマンドプロンプトからVsPerfCLREnvを起動しようとすると、「ファイルが見つかりません」と表示されます。何が一体? Ordered Tests

あなたは、単純なユニットテストを持っていた場合は、パフォーマンスセッションを作成することができるようになります。

+0

私はこれをしません。テストのボトルネックがアプリケーションのボトルネックになることはありません。 – jason

答えて

1

残念ながら順序付きテストが可能なオプション「パフォーマンスセッションの作成」を持っていません。

コマンドラインプロファイリングを使用するには、\ Program Files \ Microsoft Visual Studio 9.0 \ Team Tools \ Performance Toolsに移動します。ここに、vsperfclrenv.cmdとプロファイラブログに記載されているその他のツールが表示されます。

2

私はちょうどVS2008で動作するプロファイリングを得た。

  1. 選択Profile a dynamic link library
  2. は、次のように入力します。あなたはDebugコンフィギュレーションモードである
  3. クリックAnalyse > Launch Performance Wizard
  4. を確認します:
    • DLLをケースでは、ここで私はそれが動作するようになった方法です、誰にも役立ちますパス:ユニットテストプロジェクトのbin \ Debugにあるインストルメントするdll
    • 実行可能パス:C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\IDE\MSTest.exe
    • スタートオプションの引数:/testmetadata:TestList.vsmdi /runconfig:TestRunConfig1.testrunconfig
      • があなたのvsmdiとtestrunco​​nfigファイルの名前に基づいて、これを調整します。
    • 作業ディレクトリ:あなたのソリューションのルートパス
  5. Instrumentatationを選択してください。私はサンプリングを試していないので、私はそれについてコメントすることはできません。
  6. は、私は私のコードでは、ボトルネックを特定し、このアプローチを使用して新しいパフォーマンスプロジェクト

を実行し、ユニットテストは、今や15倍高速化され、ユーザーは10倍の速度向上を見ています。

+1

これがVS2010で動作することが予想されますか?私は(10.0 MSTest.exeへの更新されたパスを使用して)手順に従ってみましたが、 "ファイルやアセンブリを読み込めませんでした"というエラーメッセージが表示されます。VSPerfControl.Interop、Version = 2.0.0.0、Culture = neutral、PublicKeyToken = b03f5f7f11d50a3a'' "。また、手順4で、テストプロジェクトのDLL(Foo.Testなど)を選択しますか。dll)やプロジェクト自体(Foo.dllなど)? –

+0

@CalebBell:VS2010では、はるかに簡単に行うことができます。この[質問](http://stackoverflow.com/questions/3145536/how-to-profiler-unit-test-in-visual-studio-2010)を参照してください。 – Iain

+0

ありがとうございますが、私は複数の単体テスト(単体テスト全体)をプロファイリング作業の本体として使用することに興味があります。それが可能かどうか知っていますか?または良いアイデアですか?おそらく、私は関連するものを見たことがないので、新しい質問を開くべきでしょう。私に戻ってきてくれてありがとう! –

関連する問題