web-dev-qa-db-ja.com

Visual Studio 2013 MSTest対NUnit

私の会社はVisual Studio 2012を2013 Premiumにアップグレードしています。この中で、 Visual Studio Team Services を使用してテストの自動化を開始することも検討しています

私は過去にいくつかのMSTest対nUnitの投稿と記事を読みましたが、ほとんどはMSTestの古いバージョンを比較しています。また、nUnitはMSTestと比較して多くの好意的なレビューを受けました。

私の質問は、自動テストを促進および促進するためにALM、アジャイルプラクティス、およびVS2013 PremiumおよびVisual Studio Team Servicesに追加されたすべてのものに対するMicrosoftのコミットメントを考慮すると、MSTestはnUnitと比較してどうですか?

使用するテストフレームワークを決定する前に、他にどのような考慮事項がありますか?

67
Null Reference

MSTestは最初に導入されてからあまり変更されていないため、古い比較投稿は引き続き有効です。 MicrosoftのALMへの焦点は、主にさらなるツールとサーバー製品を対象としていますが、基本的なテストフレームワークはあまり変更されていません。

また、MSTestとそのALM戦略全体が、統合テスト、システムテスト、パフォーマンステストなどを含む多くの異なるスタイルの自動テストを対象としていることに注意する必要があります。作業するには重すぎるため、単体テストにはあまり適していません。

NUnitの方が優れていますが、私もお勧めしません。それも何年もあまり変わっておらず、拡張性モデルは率直に言って混乱です。

代わりに、 xUnit.net をお勧めします。どちらも完璧ではありませんが、現在は.NETで最も優れた主流の代替品です。 xUnit.netがMSTestより優れている には多くの理由があります。

57
Mark Seemann

MSTest対NUnit:

  1. MSTestはVSと統合されているため、簡単に使用できます。 NUnitにはサードパーティのツールが必要です(一部は無料、一部は有料です)。
  2. VSは、MSTestでコードカバレッジを提供します。 NUnitにはDotCover(有料ツール)が必要です。
  3. MSTestには、テストが互いに依存していない場合にテストを並行して実行するオプションがあります。これは、NUnitが提供する機能ではありません。
  4. NUNitにはTestCaseSourceAttributeがあり、パラメータ化されたテストケースを達成するのに役立ちますが、MSTestではDataSourceAttributeが必要になります。
  5. NTestは、MSTestと比較して高速です。

全体として、両方のフレームワークを使用するのは良いことですが、NUnitに移行することをお勧めします。

36
arpitbakshi