NUnit - NUnit
Эта статья поднимает множество проблем. Пожалуйста помоги Улучши это или обсудите эти вопросы на страница обсуждения. (Узнайте, как и когда удалить эти сообщения-шаблоны) (Узнайте, как и когда удалить этот шаблон сообщения)
|
NUnit 2.4.6 GUI в Windows | |
Оригинальный автор (ы) | Чарли Пул, Джеймс Ньюкирк, Алексей Воронцов, Майкл Два, Филип Крейг, Роб Проуз, Симона Бусоли, Нил Колвин |
---|---|
Разработчики) | Проект NUnit, .NET Foundation |
Стабильный выпуск | 3.12.0 / 14 мая 2019 г. |
Репозиторий | github |
Написано в | C # |
Операционная система | .NET Framework, Мононуклеоз |
Тип | Модульное тестирование инструмент |
Лицензия | Лицензия MIT для 3.0, в стиле BSD (изменено лицензия zlib ) для 2.x |
Интернет сайт | www |
NUnit является Открытый исходный код модульное тестирование рамки для .NET Framework и Мононуклеоз. Он служит той же цели, что и JUnit делает в Ява мире, и является одной из многих программ в xUnit семья.[нужна цитата ]
особенности
- Тесты можно запускать из средства запуска консоли в Visual Studio через адаптер тестирования,[1] или через сторонних участников.
- Тесты можно проводить параллельно.[2]
- Сильная поддержка тестов на основе данных.[3]
- Поддерживает несколько платформ, включая .NET Core,[4] Xamarin Mobile,[5] Компактная структура[6] и Silverlight.[7]
- Каждый тестовый пример можно добавить в одну или несколько категорий, чтобы обеспечить выборочный запуск.[8]
NUnit предоставляет средство запуска консоли (nunit3-console.exe), которое используется для пакетного выполнения тестов. Средство выполнения консоли работает через механизм тестирования NUnit Test Engine, который дает ему возможность загружать, исследовать и выполнять тесты. Когда тесты должны выполняться в отдельном процессе, движок использует программу nunit-agent для их запуска.[нужна цитата ]
Бегун NUnitLite может использоваться в ситуациях, когда более простой бегун более подходит. Это позволяет разработчикам создавать самоисполняющиеся тесты.[нужна цитата ]
Утверждения
NUnit предоставляет богатый набор утверждения как статические методы Утверждать
учебный класс. Если утверждение не выполняется, вызов метода не возвращается, и выдается сообщение об ошибке. Если тест содержит несколько утверждений, все утверждения, следующие за провалом, выполняться не будут. По этой причине обычно лучше использовать одно утверждение на тест.[нужна цитата ]
Nunit 3.x поддерживает несколько утверждений.
[Тест]общественный пустота ComplexNumberTest(){ Комплексное число результат = SomeCalculation(); Утверждать.Несколько(() => { Утверждать.Равны(5.2, результат.RealPart, "Реальная часть"); Утверждать.Равны(3.9, результат.ImaginaryPart, «Мнимая часть»); });}
Классический
До NUnit 2.4 отдельный метод Утверждать
class использовался для каждого отдельного утверждения. Он продолжает поддерживаться в NUnit, поскольку многие люди предпочитают его.[нужна цитата ]
Каждый метод assert может быть вызван без сообщения, с простым текстовым сообщением или с сообщением и аргументами. В последнем случае сообщение форматируется с использованием предоставленного текста и аргументов.[нужна цитата ]
// Равенство утверждаетУтверждать.Равны(объект ожидается, объект действительный);Утверждать.Равны(объект ожидается, объект действительный, нить сообщение, параметры объект[] Пармы);Утверждать.AreNotEqual(объект ожидается, объект действительный);Утверждать.AreNotEqual(объект ожидается, объект действительный, нить сообщение, параметры объект[] Пармы);// Подтверждение идентичностиУтверждать.AreSame(объект ожидается, объект действительный);Утверждать.AreSame(объект ожидается, объект действительный, нить сообщение, параметры объект[] Пармы);Утверждать.Не то же самое(объект ожидается, объект действительный);Утверждать.Не то же самое(объект ожидается, объект действительный, нить сообщение, параметры объект[] Пармы);// Утверждение условия// (Для простоты методы с подписями сообщений опускаются.)Утверждать.Правда(bool условие);Утверждать.IsFalse(bool условие);Утверждать.Нулевой(объект объект);Утверждать.IsNotNull(объект объект);Утверждать.IsNaN(двойной двойной);Утверждать.Пусто(нить строка);Утверждать.IsNotEmpty(нить строка);Утверждать.Пусто(ICollection коллекция);Утверждать.IsNotEmpty(ICollection коллекция);
На основе ограничений
Начиная с NUnit 2.4, новый На основе ограничений была представлена модель. В этом подходе используется единственный метод Утверждать
класс для всех утверждений, передавая Ограничение
объект, определяющий выполняемый тест. Эта основанная на ограничениях модель теперь используется внутри NUnit для всех утверждений. Методы классического подхода были повторно реализованы поверх этой новой модели.[нужна цитата ]
Пример
Пример NUnit испытательный стенд:[нужна цитата ]
с помощью NUnit.Framework;[TestFixture]общественный класс ExampleTestOfNUnit{ [Тест] общественный пустота TestMultiplication() { Утверждать.Равны(4, 2*2, "Умножение"); // Аналогично, начиная с версии 2.4 NUnit предлагает новые и // более интуитивно понятный синтаксис утверждения на основе объектов ограничений // [http://www.nunit.org/index.php?p=constraintModel&r=2.4.7]: Утверждать.Это(2*2, Является.Равно(4), «Умножение на основе ограничений»); }}// В следующем примере показаны разные способы написания одного и того же теста исключения.[TestFixture]общественный класс AssertThrowsTests{ [Тест] общественный пустота Тесты() { // .NET 1.x Утверждать.Броски(тип(ArgumentException), новый TestDelegate(MethodThatThrows)); // .NET 2.0 Утверждать.Броски<ArgumentException>(MethodThatThrows); Утверждать.Броски<ArgumentException>( делегировать { бросать новый ArgumentException(); }); // Использование C # 3.0 Утверждать.Броски<ArgumentException>( () => { бросать новый ArgumentException(); }); } пустота MethodThatThrows() { бросать новый ArgumentException(); }}// В этом примере показано использование возвращаемого значения для дополнительной проверки исключения.[TestFixture]общественный класс ИспользованиеReturnValue{ [Тест] общественный пустота TestException() { MyException бывший = Утверждать.Броски<MyException>( делегировать { бросать новый MyException("сообщение", 42); }); Утверждать.Это(бывший.Сообщение, Является.Равно("сообщение")); Утверждать.Это(бывший.MyParam, Является.Равно(42)); }}// Этот пример делает то же самое, используя перегрузку, которая включает ограничение.[TestFixture]общественный класс UsingConstraint{ [Тест] общественный пустота TestException() { Утверждать.Броски(Является.Тип<MyException>() .И.Сообщение.Равно("сообщение") .И.Свойство("MyParam").Равно(42), делегировать { бросать новый MyException("сообщение", 42); }); }}
Фреймворк NUnit обнаруживает метод ExampleTestOfNUnit.TestMultiplication ()
автоматически отражение.[нужна цитата ]
Расширения
FireBenchmarks является добавить в возможность записывать время выполнения модульных тестов и генерировать XML, CSV, XHTML отчеты о производительности с диаграммами и историей отслеживания. Его основная цель - дать возможность разработчику или команде, работающей с гибкая методология интегрировать показатели эффективности и анализ в модульное тестирование среды, чтобы легко контролировать и отслеживать эволюцию программной системы с точки зрения алгоритмическая сложность и загрузка системных ресурсов.[нужна цитата ]
NUnit.Forms является расширением основной структуры NUnit и также имеет открытый исходный код. Он специально рассматривает расширение NUnit, чтобы иметь возможность обрабатывать элементы пользовательского интерфейса тестирования в Windows Forms. По состоянию на январь 2013 года Nunit.Forms находится в альфа-версии, и с мая 2006 года не было выпущено ни одной версии.[нужна цитата ]
NUnit.ASP прекращено[9] расширение до основной структуры NUnit, а также с открытым исходным кодом. В частности, рассматривается расширение NUnit, чтобы иметь возможность обрабатывать элементы пользовательского интерфейса тестирования в ASP.Net.[нужна цитата ]
Смотрите также
- Автоматизация тестирования
- Список сред модульного тестирования для языков программирования .NET (включает столбец с указанием, которые основаны на xUnit)
- XUnit.net
- JUnit
Рекомендации
- ^ «Тестовый адаптер NUnit 3».
- ^ «Параллелизируемый атрибут».
- ^ "TestCaseData".
- ^ Проуз, Роб (2015-11-04). «Тестирование .NET Core с использованием NUnit 3».
- ^ Проуз, Роб (2015-03-25). «Средство выполнения тестов NUnit 3.0 для Android и iOS».
- ^ «NUnit Version 3 для Compact Framework».
- ^ «NUnit Version 3 для SilverLight 5.0».
- ^ "CategoryAttribute". Получено 2015-12-15.
- ^ "Главная страница сайта NUnit.ASP". Sourceforge. Получено 2008-04-15.
Библиография
- Хант, Эндрю; Томас, Дэвид (2007). Прагматическое модульное тестирование на C # с помощью NUnit, 2-е изд. Книжная полка Pragmatic (Роли), 2007. ISBN 0-9776166-7-3.
- Ньюкирк, Джим; Воронцов, Алексей (2004). Разработка через тестирование в Microsoft .NET. Microsoft Press (Редмонд), 2004. ISBN 0-7356-1948-4.
- Гамильтон, Билл (2004). Справочник по NUnit Pocket. О'Рейли (Кембридж), 2004. ISBN 0-596-00739-6.
внешняя ссылка
- Официальный веб-сайт
- Сайт GitHub
- Сайт Launchpad (больше не поддерживается)
- Разработка через тестирование с помощью NUnit и Test-driven.NET видео демонстрация
- Домашняя страница NUnit.Forms
- Домашняя страница NUnitAsp
- Статья Повышение качества приложений с помощью разработки через тестирование предоставляет введение в TDD с конкретными примерами использования Nunit
- Инструмент с открытым исходным кодом, который может выполнять тесты nunit параллельно
- Чарли Пул, со-разработчик
- Роб Проус, со-разработчик
- Симоне Бусоли, со-разработчик