19

私たちのソリューションには、いくつかのテストプロジェクトがあります。それらのほとんどには、高速で実行される単体テストが含まれていますが、統合、受け入れ、およびUIテスト用であり、完了するまでにかなりの時間がかかります。ここで、単体テストのみを実行する便利な方法が必要です。ホットキーを使用してすべてを実行するか、新機能を使用して各ビルド後にテストを実行します。

残念ながら、VSはすべての低速テストも実行します。VS10では、テストビューのテストをプロジェクトごとにグループ化し、単体テストを含むテストのみを選択しました。思ったほど簡単ではありませんが、少なくとも可能でした。現在、ソリューションですべてのテストを実行する方法はないようです。

現時点で私が目にしている唯一の選択肢は、単体テストを除くすべてをソリューションから削除することですが、これによりリファクタリング機能が制限されます。

では、新しいVSで単体テストのみを簡単にグループ化して実行する方法を知っている人はいますか?

4

5 に答える 5

9

Visual Studio 2012 Update 1 CTPで、テストエクスプローラーにプロジェクトまたは特性(カテゴリ)ごとにテストをグループ化するオプションが追加されました。

このリンクにアクセスして、最新情報を確認してください。

于 2012-10-12T21:15:22.810 に答える
8

ユニットテキストエクスプローラーで検索フィルターを使用できます。

ここに画像の説明を入力してください

2012に同梱されている新しいTestExlorerでは、「Test Results」、「FileName」などでテストをグループ化できますが、RTMビルドグループ/「TestCategory」での検索は、TestExplorerにはありません。ただし、コマンドラインとTeamBuildには、VS2012のTestCategory(TestCaseFilterを使用してVS 2012 RCで選択的な単体テストを実行する)に基づくフィルターがあります。

VS開発チームのメンバーから、彼らはこの欠けている機能の重要性を理解しました。これはバックログにあり、furutreのビルド/アップデートで利用できるはずです。

次のブログで詳細を確認できます:http://blogs.msdn.com/b/vikramagrawal/archive/2012/07/23/running-selective-unit-tests-in-vs-2012-rc-using-testcasefilter.aspx

于 2012-09-27T14:15:50.610 に答える
3

Visual Studio 2012 Update 2(現在CTP上)の時点で、「プレイリスト」を使用して、または「リストとクラス」に基づいて、単体テストのサブセットを実行できるようになりました。詳細はこちら: http: //blogs.msdn.com/b/visualstudioalm/archive/2013/01/30/first-ctp-for-visual-studio-update-2.aspx#playlists

元の回答:

AFAIK、VS2012の新しい単体テストフレームワークは、「TestCaseFilterによるフィルタリング条件に基づく選択的な実行をサポートします」。残念ながら、現在、ユーザーインターフェイスを介してこれを行うことはサポートされていませんが、製品グループのバックログにあります。このアプローチは、テストビルドまたはコマンドラインから使用できます。次のブログを参照してください:http://blogs.msdn.com/b/vikramagrawal/archive/2012/07/23/running-selective-unit-tests-in-vs-2012-rc-using-testcasefilter.aspx

編集:MSDNドキュメントに従って、テストカテゴリを使用してテストをグループ化します。

http://msdn.microsoft.com/en-us/library/dd286595.aspx

また、この質問を参照してください:Visual Studio 2012 Test Runnerで特定のテストを除外するにはどうすればよいですか?

テストパスに基づくフィルタリングの例を示します。

于 2012-09-26T18:37:56.160 に答える
2

TestDriven.Netの使用をお勧めします。すべての単体テストプロジェクトを1つのソリューションフォルダーにグループ化し、他のすべてのテストを別のフォルダーにグループ化します。次に、「単体テスト」フォルダを右クリックして、「すべてのテストを実行」を選択します。私は常に、VSネイティブテストツールのこの優れたテストランナーを好みます。

もう1つのアプローチは、NCrunchを使用することです。NCrunchは、コーディング中にすべてのテストをバックグラウンドで実行します。統合テストはバックグラウンドで並行して実行されるため、非常にうまく処理されるため、ブロックされません(実行するテストプロジェクトも選択できます)。ただし、1つの問題があります。VS2012はまだサポートされていないと思いますが、おそらく間もなくサポートされます。

于 2012-08-29T07:05:54.380 に答える
1

私もこの機能を見逃していました...(私たちはあなたがしたのと同じことをしました:プロジェクトまたは時々名前空間によるグループ化)。しかし、テストエクスプローラーの検索機能を使用して、これをなんとか回避できることがわかりました。

https://msmvps.com/blogs/deborahk/archive/2012/09/16/searching-and-grouping-in-vs-2012-test-explorer.aspx

私の場合、FullNameの検索フィルターを使用して実行する必要のある特定のテストを特定できました(検索ボックスのドロップダウンを使用するか、FullName: "UnitTest"と入力します)

それは同じではありませんが、それは私のために働きます

于 2012-09-21T12:01:56.740 に答える