На момент написання цієї відповіді остання версія NUnit - v3.5, а xUnit.net - v2.1.
Обидва фреймворки чудові, і обидва вони підтримують паралельний тестовий запуск (хоча по-різному). NUnit існує з 2002 року, він широко використовується, добре задокументований і має велику спільноту, тоді як xUnit.net є більш сучасним, більш прихильним до TDD, більш розширюваним, а також тенденцією в розробці .NET Core. Це також добре задокументовано.
Окрім цього, основною відмінністю, яку я помітив, є те, як xUnit.net запускає методи тестування. Отже, у NUnit у нас є клас тесту та набір методів тестування. NUnit створює новий екземпляр тестового класу, а потім запускає всі методи тестування з того самого екземпляра. Тоді як xUnit.net створює новий екземпляр тестового класу для кожного з методів тестування. . Тому не можна використовувати поля чи властивості для обміну даними між тестовими методами, що є поганою практикою, оскільки наші методи тестування залежать один від одного, що неприйнятно в TDD. Отже, якщо ви використовуєте xunit.net, ви можете бути впевнені, що ваші методи тестування повністю ізольовані.
Якщо ви бажаєте поділитися деякими даними між своїми тестовими методами, xUnit дозволить вам це зробити. Отже, за замовчуванням усі методи тестування повністю ізольовані, але ви можете розірвати цю ізоляцію у конкретних випадках навмисно. Мені подобається таке ставлення, тому воно мені більше подобається.