2016-06-27 18 views
10

このトピックについて多くの質問がありましたが、どういうわけか私のニーズに対応するものは見つけられませんでした。VS 2013 MSTestとnUnitとxUnit

私のチームは、アプリケーションの自動ユニットテストを開始する予定です。私たちは以前にそれをやったことがなく、チームの誰もそれに多くの経験がありません。私は、ユニットテスティングを自動化するためのフレームワークを研究し、見つけることを求められました。これまでのところ、選択肢をMSTest、NUnit、xUnitに絞りました。

私はインターネット上で、私はMSTestについて否定的な評価を読んでいますが、それは私の目的にとって私にとって最も便利なツールのようです。

1)私たちのアプリケーションでは、我々はチーム全体で我々の開発のためのライセンスVS IDEを使用して.NET

2)です。

3)ソースコントロールは、私たちは、ソフトウェア・デリバリー・プロセスの一環として、CI/CDを統合する予定のTeam Foundation Server 2010の

4)です。

私は、MSTestがこの設定に統合されており、われわれが作業するための最もクリーンなインターフェイスを提供していると感じています。 NUnitまたはxUnitMSTestと大きな利点がありますか?

+0

2010年に書かれていますが、今日も有効です:http://blog.ploeh.dk/2010/04/26/WhyImmigratingfromMSTesttoxUnit.net –

+1

[Visual Studio 2013 MSTest vs NUnit]の可能な複製(http://stackoverflow.com)/questions/22650263/visual-studio-2013-mstest-vs-nunit) –

答えて

26

私はNUnitを使っているので偏見がありますが、NUnitやxUnitの利点は、両方のフレームワークがデータ駆動テスト、並列実行、高度な機能などの機能を提供することです。

しかし、特にあなたのチームが単体テストにあまり経験がなければ、MSTestに何も問題はありません。これはVisual StudioやTFSとの統合が容易なため、テストの追加はかなり簡単です。 NUnitとxUnitは両方とも統合されていますが、より多くの設定が必要な場合があります。

MSTestから始めてください。単体テストの簡単な紹介です。 MSTestのいくつかの制限に遭遇すると、NUnitやxUnitに簡単に移行できます。単純なケースでは、NuGetパッケージを変更して属性を検索/置換するだけです。

xUnitとNUnitのどちらを選択するかはどちらも素晴らしい選択ですが、それぞれ異なる考え方があります。 NUnitは柔軟性が高く、一連のテストスタイルを可能にし、統合テストに使用できます。しかし、あなたは足に自分自身を撃つことができるように十分な柔軟性があり、純粋主義者がぶつかるテストを書くことができます。 NUnitは選択肢をあなたに任せます。

xunitは単調になりがちで、単体テストで「成功のピット」に向かう傾向があります。私の経験では、グリーンフィールドプロジェクトには最適ですが、リファクタリングなしで難しいアーキテクチャのブラウンフィールドプロジェクトをテストするのが難しくなります。

最後に、これらのテストフレームワークのいずれかに間違いはありません。

+2

私は2000年頃に同様の立場にあり、約6つの.NETテストフレームワークを選択しようとしていました。私はNUnitを選択し、ここにいます。 :-) – Charlie

+0

2000?笑@Charlie、うわー! –

+1

xUnitの興味深い投稿はhttps://github.com/xunit/xunit/issues/350です。アサーションエラーメッセージが消えてxUnitに戻ってきません。私は彼らがまだそれのように議論の余地がある間に問題を終わらせるのを見ると、私は彼らの将来の発展のために信仰を持っていると確信していません。もう一度「純粋」のために他のものを取り除かないことを、どうやって知ることができますか? – tia

9

XUnitの1つの否定的な側面を追加したいと思います。 "Get Started"以外の基本的なドキュメントはありません。 APIはありません。

+0

おそらくそれが変更されましたか?私はそれ以上のものを見つけました。 https://xunit.github.io/#documentation –

3

ここでは、3つのフレームワークを簡単に分析し、カラーでランク付けしています。伝説ぬりえの enter image description here

enter image description here

MSTestをそれはシンプルおよびVisual Studioに統合され、それがマイクロソフトから来るので、それが良いだけです。その柔軟性は十分ではなく、あまり拡張できません。しかし単なる単体テストフレームワークではなく、統合テスト、Web(負荷)パフォーマンステストもサポートしています。他の2つは純粋なユニットテストフレームワークです。だから、私はMSTestは "Jack of all tr​​ades、noneのマスター"と言います。

NUnitは、一貫して一貫して一貫して最高です。非常に優れたユーザーベース、ドキュメント、コミュニティのサポートにより、より柔軟でシンプルです。

XUnitは、少し違うスタイルに従っているため、個人的にはNUnitに比べると多くの利点はありません。場合によっては、テストケースに合わせてコードをリファクタリングする必要があります。しかし、XUnitを好む人が多いので、これは私の意見です。

関連する問題