Я использую Visual Studio (иногда resharper) для запуска unit test.
Я слышал о NUnit, но я не знаю много об этом...
Должен ли я заботиться об этом? Может ли это предложить нечто лучшее, чем визуальная студия?
Должен ли я использовать NUnit и почему?
Я использую Visual Studio (иногда resharper) для запуска unit test.
Я слышал о NUnit, но я не знаю много об этом...
Должен ли я заботиться об этом? Может ли это предложить нечто лучшее, чем визуальная студия?
Должен ли я использовать NUnit и почему?
NUnit имеет несколько преимуществ перед MS-тестом
Assert.AreEqual(expected, actual) vs Assert.That(actual, Is.EqualTo(expected))[TestCase]! NUnit позволяет проводить тесты с параметрами.С моей текущей точки зрения (после 8 месяцев разработки с примерно 10 разработчиками в среднем) я бы посоветовал против использовать MSTest по следующим причинам
Другими словами, если бы я снова решил 8 месяцев назад, я бы, вероятно, взял NUnit. У меня может не быть отчета об интегрированных тестах, но у разработчиков будет более плавное тестирование.
Вот мой опыт работы с MS Test
Дополнение: Теперь у нас есть еще несколько тестов, даже не могу сказать, сколько. Их невозможно запустить из Visual Studio из-за OutOfMemoryExceptions и других проблем с нестабильностью. Мы запускаем тесты из сценариев. Было бы легко просмотреть результаты тестов в Visual Studio, но когда решение открыто, VS сбой (каждый раз). Поэтому нам нужно искать неудачные тесты с помощью текстового поиска. Больше нет преимущества интегрированного инструмента.
Другое обновление. Сейчас мы используем VS 2013. Многое изменилось. Они перезаписали тест-тест MS Test в третий раз с момента начала. Это вызвало множество изменений, но ни одна новая версия не делала ничего лучше. Мы рады, что мы не использовали причудливые функции MS Test, потому что они больше не поддерживаются. Это позор. Мы все еще используем скрипты для создания и запуска всех модульных тестов, потому что они более удобны. Visual Studio потребовалось несколько минут, чтобы начать выполнение тестов (временные меры после компиляции до начала первого теста). Вероятно, они исправляют это с обновлением, и это может быть конкретной проблемой нашего проекта. Тем не менее, Resharper намного быстрее при выполнении тех же тестов.
Заключение. По крайней мере, в сочетании с Resharper, MS Test полезен. И я надеюсь, что они, наконец, узнают, как должен быть написан тестовый бегун, и не будем делать такого рода нарушения при обновлении Visual Studio в следующий раз.
NUnit можно использовать в комбинации с визуальной студией. Это не отдельная программа. Таким образом, вы можете позаботиться о том, подходит ли вам:).
"После установки плагина вы найдете новое подменю в меню инструментов.
Дополнительную информацию об импорте см. http://nunitit.codeplex.com/.
Кроме того, многое можно найти, используя поиск SO. В этом разделе перечислены преимущества стандартного тестирования NUnit over MS.
Самое большое преимущество MS-Test над NUnit - MS-Test может генерировать макетные объекты с использованием Reflection. Я нашел это очень полезным
NUnit работает со стандартной версией VS.
NUnit является структурой модульного тестирования, которая также поддерживается Resharper. Я думаю, что вы используете среду модульного тестирования Microsoft, поэтому NUnit - это просто альтернатива продукту Microsoft;)
Вот ссылка на домашнюю страницу NUnit: http://nunit.org
Я не уверен в других, но NUnit предоставляет приятный графический интерфейс и консоль для запуска ваших тестов устройств, а также вы можете генерировать отчет о результатах выполнения NUnit Test, который даст подробную информацию о том, что тест не прошел или прошел, а также что это потребовалось для вашего unit test
В NUnit тесты не выполняются параллельно. Скорее, кажется, что все тесты выполняются в одном потоке. В MSTest каждый тест создается в отдельном потоке, что приводит к чередованию циклов. Поэтому, если тест A зависит от теста B на его успешность, он, скорее всего, потерпит неудачу, так как тест B, скорее всего, начнет выполняться, когда тест A выполняется.
Если вы используете Visual Studio, вам нужно использовать NUnit для выполнения unit test, а если вы используете java (Netbeans), вы должны использовать JUnit для unit test.
Вот пример простого калькулятора unit test
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using SimpleCalculator;
using NUnit.Framework;
namespace CalculatorTest
{
[TestFixture]
public class Class1
{
public Calculator _calculator;
[TestFixtureSetUp]
public void Initialize()
{
_calculator = new Calculator();
}
[Test]
public void DivideTest()
{
int a = 10;
int b = 2;
int expectedValue = a / b;
int actualvalue = _calculator.Divide(a, b);
Assert.AreEqual(expectedValue, actualvalue,"Failure");
}
}
}