Gallio MbUnit vs NUnit, проблеми зміни фреймворка

Доброго дня,
я прочитав тему про “Преобразование XML отчетов Nunit в HTML”
Хочу звернутися до прихильників Gallio та NUnit і задати декілька питань.
Я є автором цієї теми, це так, щоб було уявлення про структуру.
Gallio використовую на проекті з 2012-го року, і повністю ним задоволений. Але є одне але… він більше не підтримується. Спочатку відмер сайт. З цим змирилися, так як основний функціонал був вивчений і використаний. От стикнулися з проблемою, що gallio не сумісний із студією, новішою 2013-го року.
Логічно постала думка про переїзд на щось живіше, таке як NUnit фреймворк.
Так, приходиться міняти в коді назви фікстур, ассерти. Але не в цьому в мене затик.
Мене більше хвилює інфраструктура, точніше, розчаровує.
Зараз я приведу свої аргументи як твердження, якщо вони помилкові, прошу мене виправити.

  1. В NUnit не можна дати назву тестові, він бере назву тест метода і репрезентує її як TestName. Так робити не можна:
    [Test , Name( "03. Subfolders cannot be added to unappropriated nodes" )]
    public void SubfoldersCannotBeAddedToUnappropriatedNodes( string where )
    Я втрачаю читабельність тест-звіту.

  2. Використовуючи ROW в MbUnit
    [Test , Description( "Daily search new ASX Filings" )]
    [ROW( new Source[] { Source.ASX } , SearchType.Filings , new string[] { "FILING.DATE=1" } )]
    public void DailySearchNewASXFilingItems( Source[] sources , SearchType type , string[] where )
    в репорті Gallio для кожного теста я бачив з яким значенням воно запускалося:
    Daily search new ASX Filings([{ASX}], {Filings}, ["FILING.DATE=1"] )
    а в NUnit:
    DailySearchNewASXFilingItems(XPi.DisclosureNet.Source[],Filings,System.String[] )
    Неприємний момент, не хочеться логувать тест, з якими значеннями параметрів він запускався.

  3. І нехай NUnit робить репорти тільки в XML, приходиться їх конвертувати, викручуватися з присвоєнням нового імені репорту, і ще хто зна чого, до чого я не дійшов.

  4. Проблема в тому, що я не можу аттачити скріншоти в репорт. Нехай в лог я пишу “a href…” зі шляхом до мого скріншоту, щоб хоч ссилка була. Розглянув такі проекти:
    NUnit HTML Report Generator - застарілий, не конвертує xml від NUnit3
    NUnit Orange - не підтримується
    Можливо ще якісь, я вже заплутався, єдиний що підтримується зараз, це ReportUnit
    Я вніс зміни в ReportUnit проект, де він обробляє “output” елемент, розпаршую його, виділяю лінки і т.д та вставляю в вихідний html. Проблема в тому, щоб відображать це так же красиво в попапах - їх код jQuery на сторінці викушує мої лінки, вони неклікабельні. Приходиться вставляти їх не в попап, а це вже не дуже гарно.

Власне, питання. Чи варта гра свічок? Тому що прийти до прийнятного результату можна, доповнивши код, переписавши конвертор. Потім його треба підтримувати, може NUnit знову поміняє структуру.
Чи варто взагалі покидати MbUnit?
Чому NUnit такий розхвалений, а я бачу тільки недоліки?
Чи мені міняти ментальність і відмовлятися від красивих репортів? :slight_smile:

Каждая лягушка свое болото хвалит.
А суть фреймворка следующая: Каждый автор вкладывает в библиотеку/фреймворк свою идеологию и правила, и зачастую эти правила не совпадают с тем что мы хотим получить, поэтому в свое время ПОЛНОСТЬЮ отказался от разного рода фреймворков и прочего, а для себя сделал unix way упрощающие жизнь с:
-таблицами

  • поиском
  • аплоад/довнлоад
  • отправка отчетов (перепиленый алюр)
    Чего и Вам желаю

По сабжу: ничего сказать не могу, не использовал это.

Мне вот нарвилось работать с MbUnit давным давно…давным давно…

Основная причина, почему мне пришлось перейти на NUnit или, о!, попробуйте xunit – там тестам можно имена через аттрибыты давать; и разработчики Microsoft в CoreFx / CoreCLR используют xunit.

Переход на NUnit или XUnit мне не особо понравился после Икаруса. Но сейчас Икарус уже безнадежно устарел и с каждым годом от него будут отваливатся оставшиеся фичи.

Я к тому, что да, переходить на что-то нужно, вечным MbUnit точно не будет. А вот на что… тут выбор, к сожалению, не большой: либо nunit, либо xunit.

1 лайк