私は VS 2012 の使用に切り替えましたが、ほとんどの部分で優れています。問題は、単体テストをカテゴリ別にフィルター処理する方法が見つからないことです。
4 に答える
次のように TestCategoryAttribute を使用したと仮定します。
[TestMethod, TestCategory("MyTestCategory")]
public void MyTest() {}
[テスト エクスプローラー] ウィンドウで、特定のカテゴリを含めるには、フィルター テキスト ボックスに次のように入力します。
Trait:"MyTestCategory"
特定のカテゴリのテストを削除するには、フィルター テキスト ボックスに次のように入力します。
-Trait:"MyTestCategory"
複数のカテゴリを除外または含めることができます。これにより、[テスト エクスプローラー] ウィンドウで統合テストと自動化された UI テストを除外できるため、[ビルド後にテストを実行] をより効果的に使用できます。
詳細については、こちらを参照してください: http://msdn.microsoft.com/en-us/library/hh270865.aspx#BKMK_Searching_and_filtering_the_test_list
最新のVisualStudio2012 CTPでは、この機能が追加されています。テストエクスプローラーに、テストを特性(カテゴリ)でグループ化し、特性(カテゴリ)でフィルタリングするオプションが追加されました https://msdn.microsoft.com/en-us/library/hh270865.aspx
私もこの機能を探していましたが、私が知る限り、カテゴリでフィルタリングすることはできません. 検索フィルターCategory:"categoryName"を使用してみましたが、うまくいきませんでした。コマンド ライン (http://msdn.microsoft.com/en-us/library/dd286683.aspx) からテスト カテゴリ別に実行できるようで、ビルドで実行するカテゴリを定義できます (http://msdn.microsoft.com/en-us/library/dd286683.aspx)。 msdn.microsoft.com/en-us/library/dd286595.aspx) ですが、IDE からは実行できないようです。
Visual Studio 2012 のデフォルトのテスト ツールを試してみたいと思っていましたが、テスト カテゴリに依存しているため、JetBrains dotCover などのサード パーティの商用ツールしか選択肢がないようです。
2012 に同梱されている新しい Test Exlorer では、'Test Results'、'FileName' などでテストをグループ化できますが、RTM ビルド グループでは、'TestCategory' による検索はテスト エクスプローラーに表示されません。ただし、コマンドラインと TeamBuild には、VS2012 の TestCategory (TestCaseFilter を使用して VS 2012 RC で選択的な単体テストを実行する) に基づくフィルターがあります。
VS チームのメンバーから、彼らはこの不足している機能の重要性を理解しました。これはバックログにあり、フルトレのビルド/アップデートで利用できるはずです。