На момент написания этого ответа последняя версия NUnit - v3.5, а xUnit.net - v2.1.
Обе платформы великолепны, и обе поддерживают параллельное выполнение тестов (хотя и по-разному). NUnit существует с 2002 года, он широко используется, хорошо документирован и имеет большое сообщество, тогда как xUnit.net является более современным, более приверженным TDD, более расширяемым и также имеет тенденцию в разработке .NET Core. Это также хорошо задокументировано.
В дополнение к этому, основное отличие, которое я заметил, заключается в том, как xUnit.net запускает методы тестирования. Итак, в NUnit у нас есть тестовый класс и набор тестовых методов в нем. NUnit создает новый экземпляр тестового класса, а затем запускает все методы тестирования из того же экземпляра. В то время как xUnit.net создает новый экземпляр тестового класса для каждого из тестовых методов. . Следовательно, нельзя использовать поля или свойства для обмена данными между методами тестирования, что является плохой практикой, поскольку наши методы тестирования будут зависеть друг от друга, что недопустимо в TDD. Поэтому, если вы используете xunit.net, вы можете быть уверены, что ваши методы тестирования полностью изолированы.
Если вы хотите поделиться некоторыми данными между своими тестовыми методами, xUnit позволит вам это сделать. Таким образом, по умолчанию все методы тестирования полностью изолированы, но вы можете намеренно нарушить эту изоляцию в определенных случаях. Мне такое отношение нравится, поэтому оно мне больше нравится.