48

単体テストに使用するテクノロジを決定する必要があります。現在、Visual Studio 2010 を使用していますが、付属の MSTest には満足していません。バグが多く、展開が不十分で (たとえば、テスト設定の出力ディレクトリが正しく認識されない)、32 ビットおよび 64 ビット バージョンでアセンブリをテストしようとすると、いくつかの問題があります。さらに悪いことに、MSTest は Jenkins ビルド システムと適切なインピーダンス マッチングを持っていません。そのため、NUnit に移行することを考えました。ただし、私たちのチームには、NUnit に十分に触れている人は誰もいません。また、まもなく Visual Studio 2012 に移行します。

Visual Studio 2012 MSTest と Nunit latest version の長所と短所を知る必要があります。スタック オーバーフローに関する記事のほとんどは古いバージョンの VS に関連しているため、私たちとは関係ありません。Microsoft は 2010 年以降、MSTest を大幅に改善したと思います。両方のテクノロジで直面した詳細な技術的問題について公平な比較を提供してください (新しいバージョンのみ) 。

4

5 に答える 5

27

現在、MSTestとNUnitの両方を使用しています。IMHONUnitは依然として優れたソリューションです。Visual Studio 2012 Premiumエディションを使用している場合は、テストをグループ化できないように見えることを除けば、実際には非常に便利です。Visual Studioに統合されているという事実は気に入っていますが、グループ化の欠如と、テストのサブセットを手動で選択せずに実行できることは大きな問題です。

カバレッジ分析もプレミアムではかなりきちんとしています。高速で、必要なものをすばやく提供します。ただし、これはプレミアム機能です。

MSTestにはまだ機能が不足しているため(vs2010以降に削除された機能もあります)、単体テストにはNUnitを使用することをお勧めします。利点には、名前空間によるテストのグループ化、テストケースの注釈を追加する機能(異なるパラメーターを使用して同じテストを複数回実行する機能)が含まれ、カバレッジ分析のためにOpencoverおよびReportGeneratorとうまく連携します。主に引用されている短所は、MSTestのように統合されていないことです。したがって、それが短所であるかどうかは、実際にどれだけ重要かによって異なります。

于 2013-02-13T14:05:03.680 に答える
1

VS の Traits 機能を調べましたか? 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

グループ化は、nunit と比較して mstest (2012 update 1) の方がはるかに優れています。

于 2013-06-09T10:27:40.290 に答える
0

ここでもう 1 つ追加します。特定のシナリオでは、MSTEST エンジンが TFS Build でうまく動作しないようです。TFS ビルドを使用している場合、スキップされたテストは報告されません (無視属性でマークされています)。Assert.Inconclusive のみが含まれます。それが問題になる場合は、MSTest の代わりに NUnit を使用する必要があります。

于 2014-02-12T16:01:52.577 に答える