Аргументы в пользу NUnit xUnit вместо MSTests

473 views
Skip to first unread message

Akim Khalilov

unread,
Sep 26, 2012, 6:27:44 AM9/26/12
to dotne...@googlegroups.com
Всем привет.

Хочу перейти с MS Tests на новые фреймворки. У нас CI настроен на Team Build 2010. У кого какие есть аргументы в пользу перехода на новые юнит-тест фреймворки? Как убедить менеджеров? Прошу еще учесть, что придется переделать шаблон у Team Build т.к. он не умеет запускать ничего другого по дефолту.

Artur Drobinskiy

unread,
Sep 26, 2012, 6:30:34 AM9/26/12
to dotne...@googlegroups.com
А какие у тебя аргументы для себя самого? :)
Почему ты хочешь уйти с MSTest?

26 сентября 2012 г., 17:27 пользователь Akim Khalilov <akim.k...@gmail.com> написал:
Всем привет.

Хочу перейти с MS Tests на новые фреймворки. У нас CI настроен на Team Build 2010. У кого какие есть аргументы в пользу перехода на новые юнит-тест фреймворки? Как убедить менеджеров? Прошу еще учесть, что придется переделать шаблон у Team Build т.к. он не умеет запускать ничего другого по дефолту.
--
 
 
 

Akim Khalilov

unread,
Sep 26, 2012, 6:32:45 AM9/26/12
to dotne...@googlegroups.com
Синтаксис и Assert'ы?!

Я не применял ни один широко. Не могу сказать, в чем преимущества одного и недостатки другого.

Dmitry Khryukin

unread,
Sep 26, 2012, 6:39:54 AM9/26/12
to dotne...@googlegroups.com

Akim Khalilov

unread,
Sep 26, 2012, 9:10:54 AM9/26/12
to dotne...@googlegroups.com
Интересно. Спасибо. 

Ну а что-то из практики? Кто-то решал такие вопросы?

Alexander Byndyu

unread,
Sep 26, 2012, 10:10:37 AM9/26/12
to dotne...@googlegroups.com
Добрый день!

Лично мое предпочтение - xUnit.

В нем самый простой синтаксис и минимум дополнительных атрибутов.

Его минус - не поддерживается R# по-умолчанию.

Best regards,
Byndyu Alexander
CEO at ByndyuSoft



26 сентября 2012 г., 19:10 пользователь Akim Khalilov <akim.k...@gmail.com> написал:
--
 
 
 

Alexander Sidorov

unread,
Sep 26, 2012, 10:22:08 AM9/26/12
to dotne...@googlegroups.com
Присоединюсь.

А вот минус я бы сформулировал шире: почти нигде не поддерживается по умолчанию. И если с Resharper'ом у меня особых проблем не возникало (xunit contrib работает стабильно), с Team City намучался (и, кажется, в итоге сделал кривовато: отдельный step на каждый тестовый проект), а сейчас пытаюсь интегрировать в TFS, и, похоже, это еще более сложный квест.

Думаю, все-таки NUnit является оптимальным выбором: они добавили многие фичи xUnit (кажется, кроме одной: ввиду обратной совместимости в NUnit по-прежнему создается один инстанс тестового класса на все тесты этого класса), а ввиду широкой распространенности его поддержка есть много где.

26 сентября 2012 г., 21:10 пользователь Alexander Byndyu <alexande...@gmail.com> написал:
--
 
 
 

Alexander I. Zaytsev

unread,
Sep 26, 2012, 10:28:09 AM9/26/12
to dotne...@googlegroups.com
XUnit прекрасно интегрируется с TeamCity и даже умеет сам определять, что он запущен внутри нее. Также у него есть интеграция с MSBuild и NAnt так что я не понимаю, почему такие сложности. Не знаю как у всех, я пользуюсь своей сборкой ранера под решарпер, с удобным инсталлятором от Тимура Рахматилаева,  http://hazzik.ru/ReSharper.XUnitTestRunner/ 

Для TFS интегрируйте через MsBuild - самое оптимальное будет. 

26 сентября 2012 г., 20:22 пользователь Alexander Sidorov <alex...@gmail.com> написал:
--
 
 
 

Alexander Sidorov

unread,
Sep 26, 2012, 10:30:56 AM9/26/12
to dotne...@googlegroups.com
Да, он интегрируется с TeamCity. Но у меня не получилось в одном build-степ запустить все тестовые проекты (не помню уже, в чем там было ограничение). Если есть конфигурация, где это проблема решена, буду рад взглянуть на нее.

26 сентября 2012 г., 21:28 пользователь Alexander I. Zaytsev <hazzik...@gmail.com> написал:
--
 
 
 

Akim Khalilov

unread,
Sep 26, 2012, 10:31:12 AM9/26/12
to dotne...@googlegroups.com, hazzik...@gmail.com
Моя проблема в том, что тесты будут запускаться TFS 2010 team built'ом. Он по дефолту умеет только MSTest запускать. Конфигурировать TFS скорее всего будут администраторы.

Alexander I. Zaytsev

unread,
Sep 26, 2012, 10:31:03 AM9/26/12
to dotne...@googlegroups.com
Про "самый простой синтаксис" я бы поспорил, 

он не "самый простой" - он просто минимально-необходимый - точно такой же синтаксис в MsTest и NUnit. Многие конструкции в NUnit за счет Assert.That можно писать понятнее, лаконичнее и проще.

26 сентября 2012 г., 20:10 пользователь Alexander Byndyu <alexande...@gmail.com> написал:
--
 
 
 

Alexander I. Zaytsev

unread,
Sep 26, 2012, 10:35:09 AM9/26/12
to dotne...@googlegroups.com
Вот тут на PSake (но он сам нетривиально интегрируется с TeamCity)


Task Test -Depends Build {
$testsAssembly = Get-Item "src/*/bin/$configuration/*Tests.dll"
$testsAssembly | ForEach-Object { Invoke-Expression "$xunitconsole $_" }
}

Но можно то же самое переписать на MsBuild или NAnt - ничего особо не поменяется.


26 сентября 2012 г., 20:30 пользователь Alexander Sidorov <alex...@gmail.com> написал:
--
 
 
 

Akim Khalilov

unread,
Sep 26, 2012, 10:43:58 AM9/26/12
to dotne...@googlegroups.com
О, а можно, например, использовать MSTests как раннер для TFS, а ассерты из xUnit'a взять. Как такой вариант смотрится?


2012/9/26 Alexander I. Zaytsev <hazzik...@gmail.com>
--
 
 
 

Reply all
Reply to author
Forward
0 new messages