この回答の執筆時点での最新のNUnitバージョンはv3.5で、xUnit.netはv2.1です。
どちらのフレームワークも素晴らしく、どちらも並列テスト実行をサポートしています(ただし、方法は異なります)。NUnitは2002年から存在し、広く使用され、十分に文書化されており、大きなコミュニティーを持っています。一方、xUnit.netはより近代的で、TDDに準拠し、拡張性が高く、.NET Core開発のトレンドでもあります。それも十分に文書化されています。
それに加えて、私が気付いた主な違いは、xUnit.netがテストメソッドを実行する方法です。したがって、NUnitにはテストクラスと一連のテストメソッドがあります。NUnitはテストクラスの新しいインスタンスを作成し、同じインスタンスからすべてのテストメソッドを実行します。一方、xUnit.netは、各テストメソッドのテストクラスの新しいインスタンスを作成します。。したがって、フィールドやプロパティを使用してテストメソッド間でデータを共有することはできません。これは、私たちのテストメソッドが相互に依存しているため、TDDでは受け入れられないためです。したがって、xunit.netを使用する場合、テストメソッドが完全に分離されていることを確認できます。
ただし、テストメソッド間で一部のデータを共有する場合は、xUnitを使用して共有できます。したがって、デフォルトではすべてのテストメソッドが完全に分離されていますが、特定のケースでは意図的にこの分離を解除できます。私はこの態度を好みます、それが私がそれをより好きにする理由です。