Попробуйте Преобразование C ++ перечислений в строки . В комментариях есть улучшения, которые решают проблему, когда элементы перечисления имеют произвольные значения.
Daok назвал весь pro's тестовых проектов VS2008, вот pro's NUnit.
Преимущества/изменения Встроенной Платформы Поблочного тестирования VS2008
Платформа поблочного тестирования на самом деле не имеет значения очень, потому что можно преобразовать тестовые классы с отдельными файлами проекта и условной компиляцией (как это, VS-> NUnit):
#if !NUNIT using Microsoft.VisualStudio.TestTools.UnitTesting; #else using NUnit.Framework; using TestClass = NUnit.Framework.TestFixtureAttribute; using TestMethod = NUnit.Framework.TestAttribute; using TestInitialize = NUnit.Framework.SetUpAttribute; using TestCleanup = NUnit.Framework.TearDownAttribute; using TestContext = System.String; using DeploymentItem = NUnit.Framework.DescriptionAttribute; #endif
TestDriven. Сетевой плагин является хорошим и не очень дорогим... Только с простым VS2008 необходимо найти тест от тестового класса или тестового списка. С TestDriven. Сеть можно запустить тест непосредственно от класса, который Вы тестируете. В конце концов, модульный тест должно быть легко поддержать и около разработчика.
MSTest является по существу NUnit, немного переделанный, с несколькими новыми возможностями (такими как установка блока и разрушение, не только приспособление и тестовый уровень), и пропускающий некоторые лучшие биты (такие как новые 2,4 ограничительных синтаксиса). NUnit более зрел, и существует больше поддержки его от других поставщиков; и конечно так как это всегда было свободно (тогда как MSTest только превратил его в Профессиональную версию 2008, прежде который это были способом более дорогие наименования), большинство проектов ALT.NET использует его.
Однако существуют некоторые компании, которые невероятно отказываются использовать что-то, что не сделало, чтобы Microsoft маркировала на нем, и особенно так код OSS. Так наличие официальной среды тестирования MS может быть мотивацией, что те компании должны получить тестирование; и давайте будем честны, это - тестирование, которое имеет значение, не, какой инструмент Вы используете (и использование код Tuomas Hietanen выше, можно почти сделать среду тестирования взаимозаменяемой).
Насколько я знаю, там четыре платформы, доступные для поблочного тестирования с.NET в эти дни
NUnit всегда отсутствовал впереди, но разрыв закрылся в прошлом году или около этого. Я все еще предпочитаю NUnit сам, тем более, что они добавили быстрый интерфейс некоторое время назад, который делает тесты очень читаемыми.
, Если Вы просто начинаете с поблочным тестированием он, это, вероятно, не имеет большого значения. Как только Вы до скорости, Вы будете в лучшем положении для оценки, какая платформа является лучшей для потребностей.
Сначала я хочу исправить неправильный оператор: можно выполнить msTest за пределами Visual Studio с помощью командной строки. Хотя несколько инструментов CI, таких как TeamCity имеют лучшую поддержку NUnit (вероятно, изменился бы, поскольку msTest становится более популярным). В моем текущем проекте мы используем обоих и единственное большое различие, которое мы нашли, то, что mstest всегда работает как 32 бита, в то время как NUnit работает или как тест на 64 бита или как на 32 бита, который только имеет значение, использует ли Ваш код собственный код, который является 32/64 иждивенцем.
Моя основная говядина с модульными тестами VS по NUnit является тестовым созданием VS, имеет тенденцию вводить набор сгенерированного кода для доступа члена парламента, не занимающего официального поста.
Некоторые могли бы хотеть протестировать их закрытые методы, некоторые не могут, это быть другой темой.
Мое беспокойство - когда я пишу модульные тесты, ими нужно чрезвычайно управлять так, я знаю точно, что я тестирую и точно как я тестирую его. Если существует автоматический сгенерированный код, я теряю часть того владения.
XUnit является другой возможностью для проекта нового строительства. Это получено, возможно, более интуитивный синтаксис, но не действительно совместимо с другими платформами.
Немного вне темы, но если Вы идете с NUnit, я могу рекомендовать использовать ReSharper - это добавляет некоторые кнопки к UI VS, которые делают намного легче выполнить и отладить тесты из IDE.
Этот обзор является немного устаревшим, но объясняет это более подробно:
Одно небольшое раздражение из-за среды тестирования Visual Studio - то, что она создаст много файлов тестового прогона, которые имеют тенденцию создавать помехи Вашему каталогу проекта - хотя это не является настолько большим из соглашения.
кроме того, при недостатке в плагине, таком как TestDriven.NET Вы не можете отладить свой NUnit (или MbUnit, xUnit, и т.д.) модульные тесты в среде Visual Studio, как Вы можете со средой тестирования Microsoft VS, которая встроена.
Я использовал NUnit в течение 2 лет. Все в порядке, но я должен сказать, что система Единицы в VS довольно хороша, потому что это в Gui и может более легко сделать тест для закрытой функции, не имея необходимость бездельничать. Кроме того, Поблочное тестирование VS позволило Вам сделать покрытие и другой материал, который NUnit один не может сделать.
Я получил сообщения, что "файловая структура NUnit более богата, чем VSTest"... Конечно, если Вы предпочитаете файловую структуру NUnit, можно использовать это решение другого пути, как это (NUnit-> VS):
#if !MSTEST
using NUnit.Framework;
#else
using Microsoft.VisualStudio.TestTools.UnitTesting;
using TestFixture = Microsoft.VisualStudio.TestTools.UnitTesting.TestClassAttribute;
using Test = Microsoft.VisualStudio.TestTools.UnitTesting.TestMethodAttribute;
using SetUp = Microsoft.VisualStudio.TestTools.UnitTesting.TestInitializeAttribute;
using TearDown = Microsoft.VisualStudio.TestTools.UnitTesting.TestCleanupAttribute;
#endif
Или любое другое преобразование... :-) Это использование здесь является просто псевдонимом к компилятору.
Я бы предпочел использовать MS ' Это небольшая тестовая среда, но пока я придерживаюсь NUnit. Проблемы с MS обычно (для меня)
Предостережения - Если бы я тестировал сайт aspx, я бы определенно использовал MS - Если бы я развивался соло, тоже был бы MS - Если бы у меня были ограниченные навыки и я не мог настроить NUnit :)
, мне было бы намного проще просто написать свои тесты и запустить NUnitGUI или один из других интерфейсов (testDriven намного дороже). Настроить отладку с версией командной строки также довольно просто.
Я начал с MSTest, но переключился на него по одной простой причине. MSTest не поддерживает наследование методов тестирования от других сборок.
Мне не нравилась идея писать один и тот же тест несколько раз. Особенно в большом проекте, где методы тестирования могут легко превратиться в сотни тестов.
NUnit делает в точности то, что мне нужно. Единственное, что отсутствует в NUnit, - это надстройка Visual Studio, которая может отображать красный / зеленый статус (как VSTS) каждого теста.
Я сделал несколько TDD, используя оба, и (возможно, я немного тупой) nUnit мне кажется намного быстрее и проще в использовании. И когда я говорю "много", я имею в виду очень многое.
В MS Test слишком много атрибутов, везде - код, который выполняет настоящие тесты, представляет собой крошечные строчки, которые вы можете прочитать здесь и там. Большой беспорядок. В nUnit код, выполняющий тест, просто доминирует над атрибутами, как и должно быть.
Кроме того, в nUnit вам просто нужно щелкнуть тесты, которые вы хотите запустить (только один? Все тесты, охватывающие класс? сборка? решение?). Один клик. И окно ясное и большое. Вы получите четкие зеленый и красный свет. Вы действительно знаете, что происходит с первого взгляда.
В VSTS список тестов забит внизу экрана, он маленький и некрасивый. Вам нужно дважды посмотреть, чтобы узнать, что произошло. И вы не можете запустить только один тест (ну, я еще не узнал!).
Но я, конечно, могу ошибаться - я только что прочитал около 21 сообщения в блоге о «Как сделать простой TDD с помощью VSTS». Я должен был прочитать больше, вы правы.
Для nUnit я читал один. И в тот же день я был в TDD. С удовольствием.
Кстати, я обычно люблю продукты Microsoft. Visual Studio - действительно лучший инструмент, который может купить разработчик, но TDD и управление рабочими элементами в Visual Studio Team System - отстой.
Всего наилучшего. Сильвен.
Если вы рассматриваете MSTest или nUnit, то я рекомендую вам взглянуть на mbUnit. Мои причины -
Первоначально я взял mbUnit из-за его функциональности [RowTest ....], и я не нашел ни одной причины, чтобы вернуться. Я переместил все свои активные наборы тестов из nUnit и никогда не оглядывался назад. С тех пор я обратил на преимущества две разные команды разработчиков.
Мне не нравится встроенная среда тестирования VS, потому что она заставляет вас создавать отдельный проект, а не проводить тесты как часть проекта, который вы тестируете.