2012-03-19 15 views
23

nUnitxUnit.netの違いはどこですか? 1つではなく、2つの開発ポイントは何ですか?nUnitとxUnit?

私はxUnitのは、NUnitのの発明者によって開発されていることを読んだ:

xUnit.netは、.NET Frameworkのためのユニットテストツールです。 別の手でNUnitの

の元発明者によって書かれ

NUnitのは、すべての.NET言語.. 現在の製品リリース、バージョン2.6用のユニットテストフレームワークでありますこののxUnitベースのユニットテストツールの第七のメジャーリリース ある

だから真実はどこですか?

+1

http://xunit.codeplex.com/wikipage?title=WhyDidWeBuildXunit&referringTitle=Home – wiero

+2

@Joeyが指摘したように、これはリンクされた質問の真っ直ぐな複製ではありません。この場合、OPは根本的に何か誤解されています。 xUnit.net - ユニットテストツールと* x * Unit - ユニットテストフレームワークのクラス(nUnit、jUnitなど)の一般化された用語の違い。再開するための投票。 –

答えて

19

あなたは言語/環境を参照するユニットテストフレームワークのクラス全体(xUnitX、例えばJUnitの、NUnitの、の名を持つ単一のツール(xUnit.net)の名​​前を混乱しています... )。

+1

これはまっすぐな複製ではないので、これは閉じてしまった - あなたは正しい - OPはほとんど同じ2つの用語の間で混乱している。 –

+0

私は混乱しないようにタイトルを少し変更しました。 – Ruslan

+1

私はタイトルではなく、あなたの質問の引用符で強調表示されている部分に行きました。しかし、おそらく私はあなたを誤解していました。 – Joey

0

xUnit Pros: xUnitは、古い「SetUp」と「TearDown」のメッホードを避けて新しいコンセプトに従います。私たちはIDisposableとコンストラクタを.NET開発者として使用する必要があります。また、xUnitは明確なコンテキスト共有の概念を持っています。

xUnit短所: テストコンテキストを取得するためのアベイラビリティはまだ実装されていません。

0

xUnitのメリットの1つは、異なるクラスのテストが見つかることです。を並列実行します。これにより、多くのテストケースがあれば、時間を大幅に節約できます。

あなたはもちろん、これをオフにする、またはその動作を制御することができます(スレッド、クラスごとのスレッド、アセンブリごとのテストの数、など

このsample solution with two test projects, one using xUnit the other NUnit

をチェックしてくださいあなたは、並列テストについての詳細を読むことができますxUnitのhere

6

回答が少し古いですので、私はアップデートを提供することにしました:これは、最新のNUnitのバージョンに答える執筆時点で をV3.5で、xUnit.netはV2.1

です xUnit.net一方

フレームワークの両方が素晴らしいです、彼らは両方(しかし別の方法で)実行中の並列テストをサポートし、NUnitのは、2002年から出回っている、それが広く使われているが、十分に文書化と大規模なコミュニティがあり、は、より現代的で、より多くのTDDを支持し、より拡張性があり、また、.netコア開発の動向です。それもよく書かれています。

さらに、xUnit.netがテストメソッドを実行する方法がわかりました。したがって、NUnitには、テストクラスとテストメソッドセットがあります。 NUnitはテストクラスの新しいインスタンスを作成し、同じインスタンスからすべてのテストメソッドを実行します。 xUnit.netは非常にそれぞれのテストメソッドに対してテストクラスの新しいインスタンスを作成します。。したがって、テストメソッド間でデータを共有するためにフィールドやプロパティを使用することはできません。これは、TDDでは受け入れられないテストメソッドが互いに依存するためです。したがって、xunit.netを使用すると、テストメソッドが完全に分離されていることを確認できます。

テストメソッド間でいくつかのデータを共有したい場合は、xUnitを使用します。したがって、デフォルトではすべてのテストメソッドが完全に分離されていますが、意図的にこの分離を破ることができます。私はこの姿勢を誇りに思っています。なぜなら、私はそれがより好きなのです。

テストクラスのインスタンス化に関する相違点によると、パラレルテスト実行機能は2つのフレームワークで異なって動作します。 NUnit.netでは、1つのクラスのテストメソッドは(並列ではなく)1つのスレッドで実行されますが、各クラスは別のスレッドでテストを実行します。 xUnit.netはテストメソッドごとに新しいインスタンスを作成するため、並列性に制限はありません。

+0

詳細については、私の最新の記事をチェックしてください:https://codopia.wordpress.com/2017/02/20/xunit-net-vs-nunit-a-pragmatic-comparison/ – akazemis

関連する問題