Подтвердить что ты не робот

NUnit vs xUnit?

Где различия между nUnit и xUnit.net? Какой смысл разрабатывать два из них, а не только один?

Я читал, что xUnit разрабатывается изобретателем nUnit:

xUnit.net - это инструмент единичного тестирования для .NET Framework. Автор:оригинальный изобретатель NUnit

В другой руке:

NUnit - это платформа модульного тестирования для всех языков .Net. текущий выпуск продукции, версия 2.6, является седьмым основным выпуском этого инструментального средства для тестирования на основе xUnit

Итак, где же правда?

4b9b3361

Ответ 1

Ответы устарели, поэтому я решил предоставить обновление: На момент написания этого ответа последняя версия NUnit была v3.5, а xUnit.net - v2.1

Обе платформы великолепны, они поддерживают параллельное выполнение тестов (хотя и по-разному), NUnit существует с 2002 года, он широко используется, хорошо документирован и имеет большое сообщество, тогда как xUnit.net является более современным, более привязанным к TDD и более расширяемым, а также популярным в разработке ядра .net. Это также хорошо задокументировано.

В дополнение к этому, основное отличие, которое я заметил, заключается в том, что xUnit.net выполняет методы тестирования. Итак, в NUnit у нас есть тестовый класс и набор тестовых методов в нем. NUnit создает новый экземпляр класса test, а затем запускает все методы tests из одного экземпляра. Принимая во внимание, что xUnit.net создает новый экземпляр класса test для каждого из методов тестирования.. Поэтому нельзя использовать поля или свойства для обмена данными между методами тестирования, что является плохой практикой, поскольку наши методы тестирования будут зависеть друг от друга, что недопустимо в TDD. Поэтому, если вы используете xunit.net, вы можете быть уверены, что ваши методы тестирования полностью изолированы.

Если вы готовы поделиться некоторыми данными между вашими методами тестирования, xUnit позволит вам это сделать. Следовательно, по умолчанию все методы тестирования полностью изолированы, но вы можете намеренно нарушить эту изоляцию в определенных случаях. Мне нравится это отношение, поэтому оно мне нравится больше.

Ответ 2

Вы путаете название отдельного инструмента (xUnit.net) с именем целого класса платформ модульного тестирования (xUnit, x относится к языку/среде, например, JUnit, NUnit,...).

Ответ 3

xUnit Плюсы: xUnit следует новой концепции, избегая старых "SetUp" и "TearDown" mehtods. Это заставляет нас использовать IDisposable и конструктор, поскольку мы должны делать это как разработчики .NET. Также xUnit имеет понятную концепцию совместного использования контекста.

xUnit Минусы: Доступность для получения тестового контекста еще не реализована.

Ответ 4

Одно из преимуществ xUnit заключается в том, что он находит тесты в разных классах, выполняет их параллельно. Это может сэкономить много времени, если у вас много тестовых случаев.

Вы можете, конечно, отключить это или контролировать его работу (количество потоков, потоков на класс, тесты на сборку и т.д.

Проверьте это образцовое решение с двумя тестовыми проектами, другое с помощью xUnit другого NUnit

Подробнее о параллельных тестах читайте в xUnit здесь