2012-03-29 5 views
1

Visual Studio/MSTestでテストをロードするのが初めてで、最近WCFサービスのトラフィックの多いシナリオを検証するために新しいロードテストを作成しました。これをサービスのテストプロジェクトに追加したいのですが、私は "ソリューション内のすべてのテストを実行する"とか、私たちの継続的インテグレーションビルド検証プロセスの一環としてテストを実行する必要はありません。なぜなら、実行する時間(分)、およびb)テストしているサービス呼び出しによって、何千もの電子メールメッセージが生成されます。基本的には、ユニットテストに[Ignore]属性を追加するのと同等の処理をしたいので、明示的にロードテストを実行するように選択すると実行されます。テストリストを使用せずにVisual Studio 2010で負荷テストを無効/無視する方法はありますか?

This MSDN Article ("How to: Disable and Enable Tests")は、テストリスト(.vsmdiファイル)を使用することだけがテストを無効にすることを提案していますが、私はそれらの経験はあまりありません。管理が面倒で、 CIビルド定義を変更するにはthis blog postは、VS2012ではテストリストが推奨されていないと言います。他のアイデア?

編集:ロードテストを別のプロジェクトに入れ、ロードテストとそれ以外のソリューションを別々に維持するというMauricioの答えを受け入れました。これにより、開発中に(高速実行中の)単体テストを実行することができます。また、テストリストを使用せずにビルド検証中の負荷テストを遅くすることもできます。

答えて

0

これは、CIビルド定義では問題ではありません。どうして?

ビルドプロセスの一部としてユニットテストを実行するには、ビルド定義をテストコンテナ(通常、テストクラスとメソッドを含む.dllファイル)を指すように設定する必要があります。負荷テストはこのようには機能しません。これらはMSTestエンジンで消費される.loadtestファイル(xmlファイルのみ)内で定義されます。

CIビルドの定義をそれ以上変更しない場合、負荷テストは無視されます。

ビルドの一部としてテストを実行する場合は、.loadtestファイルを使用するようにビルド定義を構成する必要があります。

テストリストから離れてください。あなたが言ったように、彼らはVS11で非難されている。

編集:Visual Studioの "すべて実行"テストの一環として負荷テストを実行しないようにする最も簡単な方法は、負荷テスト用に別のソリューションを作成することです。

+0

主な要件は、VSから「ソリューション内のすべてのテストを実行」を選択したときにLoadTestを実行しないことです。どのようにそれを達成するための任意のアイデア? –

+1

最も簡単なアプローチは、負荷テストに異なるソリューションを作成することです。これは、負荷とWebテストがソリューションコードに依存しないので問題ではないはずです。(負荷テストを構成するために単体テストを使用しない限り、通常はバックボックステストです)/ –

+0

ありがとうございます。今は別の解決策が最良の選択肢のように思えます(ただし、まだオーバーヘッドがあります)。私はこれを答えとしてマークします! –

0

Test Listsを使用しないのはなぜですか。私はそれを行う最善の方法だと思います。 Create different Test Lists各テストタイプ(ユニットテスト、負荷テスト...)のために、次にあなたのMSTestコマンドでTest List(s)あなたが望む実行します。

  • MSTest \testmetadata:testlists.vsmdi \testlist:UnitTests(のみユニットテスト)
  • MSTest \testmetadata:testlists.vsmdi \testlist:LoadTests(のみLoadTests)
  • MSTest \testmetadata:testlists.vsmdi \testlist:UnitTests \testlist:LoadTestsを(UnitTests & LoadTests)
関連する問題