7

非常に大きなプロジェクト (C#、VS2012) をテストしており、単体テストをテスト階層に配置する必要があります (例: 現在、43 個のテスト ケースがあります)。私は本当に階層が必要です。

テスト カテゴリは既に定義されており、テスト エクスプローラーは特性ごとにテスト ケースを表示します。このようにカテゴリがあります(1つのテストには複数のカテゴリがあります)

  • TestCase01: MainTestType、SubTestType、SubsubTestType
  • ...
  • TestCase10: MainTestType、SubTestType、SubsubTestType
  • TestCase11: MainTestType、SubTestType2、SubsubTestType2
  • ...
  • TestCase15: MainTestType、SubTestType2、SubsubTestType2

次のように定義します。

    [TestMethod]
    [TestCategory("MainTestType")]
    [TestCategory("SubTestType")]
    [TestCategory("SubsubTestType")]
    public void MyTestCase()
    { /* etc. */

しかし、テスト エクスプローラーには次のように表示されます。

  • MainTestType: カテゴリ MainTestType を持つすべてのテスト
  • SubTestType: カテゴリ SubTestType を持つすべてのテスト
  • 等...

だから私は本当に階層が恋しいです。「Cat1\Cat2\Cat3」または /. しかし、階層は表示されません。それを行う方法、または私のためにそれを行うことができる無料のアドオンを知っていますか?

コマンド ラインから頻繁にテストを実行し、mstest.exe は 1 つのカテゴリ (すべての MainTestType または SubTestType など) のテストを実行できるため、これらの種類の分類も必要になります。(チームの半分が vs2010 を使用しているため、私は mstest にこだわります)。しかし、ソリューションはvs2012で十分です。

前もって感謝します。

4

4 に答える 4

1

VS2010 でグループ化するには、で開く.vsmdiことができるファイルを使用しますTest List Editor

VS2012まで:

Visual Studio 2012 Update 1 http://www.microsoft.com/visualstudio/eng/visual-studio-updateでは、プロジェクトと特性 (カテゴリ) によるグループ化とフィルタリングの両方をサポートする拡張機能が追加されました。これらの機能の使用については、このブログ投稿 ( http://blogs.msdn.com/b/visualstudioalm/archive/2012/11/09/how-to-manage-unit-tests-in-visual-studio-2012 ) で詳しく説明しています。 -update-1-part-1-using-traits-in-the-unit-test-explorer.aspx

クラスによるグループ化とフィルター処理が完了し、Update 2 で利用できるようになります。

カテゴリを名前空間に移動することをお勧めします。これにより、TestView ウィンドウの FullClassName 列にフラットな階層が表示されます。

于 2013-05-17T07:02:18.907 に答える
1

テスト エクスプローラーには、TestFilter/InnerTests レイアウトに従うグループのみが表示されます。

新しいテスト エクスプローラー タブは汎用コンテナーです。特定のアダプター/アドオン/プラグインを使用すると、他のテスト フレームワーク (NUnit、xUnit、Qunit など) をテスト エクスプローラーに統合できますが、これらのアダプターはテスト エクスプローラー インターフェイスに従う必要があります。

そのため、テスト エクスプローラー タブでネイティブにサポートされていないため、過去にテスト エクスプローラー タブを拡張する方法を見つけられませんでした。

おそらく、別のテスト フレームワークでは階層を持つことができますが、これは別のカスタム タブと別の属性 (TestCategory は MSTest 属性) になります。

参考までに、この方法でテスト エクスプローラー ウィンドウで特性を組み合わせることもできます。

Trait:"MainTestType1"  Trait:"SubTestType3"
于 2013-05-15T07:00:54.087 に答える
0

レベル 2 の特性を最初の 2 つのレベルの値の連結にすることで、少しごまかすことができます。したがって、レベル 1 が動物でレベル 2 が哺乳類の場合、"Animal.Mammal" という特性を持つことができます。テスト エクスプローラーでは、 のノードが 1 つ、 のノードが 1 つ、 のノードが1 つ取得されLevel1 [Animal]ます。フィルターは部分文字列の一致をサポートしていると思うので、それが並べ替えの 1 つの方法です。ツリー ビューはまだ得られません (ただし、もしバインドされて決心した場合は、古い DOS ツリー コマンドのような拡張 ASCII アート パイプ文字を試すことができます)。Level1 [Plant]Level2 [Animal.Tiger]

また、異なる特性をマージできないという問題もまだあります (すべての鳥がリストの一番下まで一緒に表示されるように)。

一方で、特性の n タプルを許可しながら階層構造を強制するのは厄介です。アイテムが階層の最上位から複数のパスに入らないように制限し、サイクルを検出して報告し、現在あるものの上に (またはマトリックス化された) ツリー コントロールを使用する必要があります。また、コードをリファクタリングし、テストを並行して配置したい場合、既存の構造が多すぎると頭痛の種になる可能性があります。

于 2014-07-15T04:12:06.503 に答える