Подтвердить что ты не робот

Cuke4Nuke или SpecFlow?

Я пытаюсь решить, следует ли использовать Cuke4Nuke или SpecFlow. Каковы преимущества/недостатки каждого? Мнения о том, что лучше и почему.

Спасибо!

4b9b3361

Ответ 1

(Я мог бы быть предвзятым, потому что я занимаюсь SpecFlow, но здесь мои мысли...)

Cuke4Nuke очень близок к Cucumber. Это promises много преимуществ:

  • Совместимость
  • Получение новых функций из огурца, когда огурец эволюционирует (по крайней мере теоретически, но поддержка языка является примером для этого)
  • Будучи реальной частью сообщества огурцов и экосистемы огурца

Однако это также связано с некоторыми потенциальными недостатками:

  • Ruby - это необходимость
  • Поскольку задействована больше инфраструктуры (Ruby, Wire-Protocol, интеграция с командной строкой...), сложность всего решения возрастает, и вероятность того, что что-то в цепочке не достигнет уровня.
  • Отладка возможна, но немного hassle
  • Запуск сценариев в dos-commandline просто уродливый, и у меня все еще есть проблемы с некоторыми персонажами (немецкий Umlaute). решения от Cucumber не работали для cuke4nuke в моем случае.
  • Интеграция с вашей непрерывной сборкой - это то, что вам нужно для себя.

SpecFlow - отдельный проект из Cucumber. Он пытается как можно ближе подойти к Огурцу, но есть и будут пробелы. Планируется использовать тот же парсер, что и Cucumber, для улучшения совместимости на уровне языка.

SpecFlow пытается предложить следующие преимущества:

  • Чистое .NET-решение (поэтому установка Ruby не требуется, и Ruby не задействован во время выполнения)
  • Существует базовая интеграция с VisualStudio (и есть планы по ее развитию)
  • Сценарии в основном являются UnitTests и могут запускаться с вашей существующей инфраструктурой (NUnit.Runners, ReSharper, VisualStudio MSTest Integration...)
  • Сценарии и этапы легко отлаживаются из VisualStudio (просто установите точку останова)
  • Интеграция в вашей непрерывной сборке должна быть легкой, поскольку инфраструктура для запуска модульных тестов, безусловно, уже существует

В качестве недостатков SpecFlow я вижу в настоящее время:

  • Он не поддерживает столько языков, как Cucumber
  • В настоящее время используется шаг создания кода. Это прозрачно при использовании VisualStudio, и для VisualStudio существует командная строка, но многие люди не любят генерировать код.
  • В настоящее время для SpecFlow нет явного лидера командной строки. Однако вы можете использовать бегун с командной строкой unit-test.
  • SpecFlow зависит от платформы Unit-Test, и в настоящее время поддерживается только NUnit и MSTest.
  • Отчетность в SpecFlow еще не очень сложна. Cucumber действительно предлагает больше возможностей, однако я не знаю, доступны ли все они в cuke4nuke...

Ответ 2

jbandi дает хорошее резюме. Я отвечу на вопрос почти так же (с противоположным отказом от предвзятости, конечно).

Цель Cuke4Nuke - полная совместимость с огурцами в .NET при одновременном дублировании как можно большего количества кода огурца. Поэтому некоторые из компромиссов, которые вы выделили, например. зависимость от Ruby - присуща инструменту. Другие, такие как ошибки в поддержке языка и форматирования и ограниченная поддержка отладки, являются временными проблемами и уйдут с будущими версиями.

Я столкнулся с несколькими проблемами, когда Cuke4Nuke не работает совсем как Cucumber. Но поскольку я работаю в основном на английском языке, я не вижу проблем, связанных с языком, в моей нормальной работе. Я бы приветствовал шаги по воспроизведению любого из этих вопросов, чтобы я мог их исправить. (Пожалуйста, напишите им список выпусков Cuke4Nuke, а не здесь.)

Ответ 3

Еще одно сильно предвзятое мнение: Try StoryQ:)

Тесты StoryQ на самом деле являются кодом, поэтому вы получаете гораздо лучшую поддержку рефакторинга /IDE, и он внедряется в ваш существующий бегун unit test, поэтому CI - это бриз.

Вероятно, это вопрос предпочтения, если вы предпочитаете проверять обычные текстовые функции или компилируемый код. Но для нас мы обнаружили, что было действительно приятно переименовать нарративные методы и обновить все истории.

Существует фактически графический интерфейс, который преобразует сценарии обычного текста в код StoryQ для вас, если у вас уже есть инвестиции в сценарии с открытым текстом или если вы хотите предоставить клавиатуру своим деловым людям. Он даже получил простую форму intellisense!

Отдайте это, если вы хотите получить ультралегкую точку входа в BDD:)

Ответ 4

Другой смещенный ответ: StorEvil использует все другие инструменты .NET BDD.

Преимущества. У StorEvil есть собственный бегун из командной строки, имеет хорошую отчетность (с использованием механизма просмотра Spark) и имеет лучший механизм трансляции и выполнения opentext- > С#.

Кроме того, он на 100% больше Зла, чем любое другое решение.

Недостатки: StorEvil не поддерживает полностью другие человеческие языки (кроме английского). Интеграция StorEvil Visual Studio еще не так хороша, как другие инструменты. StorEvil будет пить все пиво в холодильнике, если вы не будете следить за ним.

Ответ 5

Я понимаю от Ричарда, что он намерен прекратить Cuke4Nuke и поддерживает перенос некоторых функций Cuk4Nuke в SpecFlow. Итак, теперь явным ответом является SpecFlow.

Ответ 6

Я начал с Cuke4Nuke, но с тех пор перешел на SpecFlow (извините Ричард;)

Основными причинами для меня этого перехода были:

  • SpecFlow имеет приятную интеграцию VS2010 для подсветки синтаксиса. Существует проект Cuke4VS, который предлагает похожие, но у него нет поддержки VS2010 (или нет, когда я в последний раз смотрел, что было довольно недавно).
  • Я обнаружил, что тесты отладки в SpecFlow проще (не просите меня уточнить, это просто так казалось...; -)
  • Cuke4Nuke нужен Ruby. Я был в порядке с этим, но большинство разработчиков С#, которые, как мне известно, напуганы любыми продуктами, отличными от MS, Ruby в частности.

Есть некоторые проблемы с Specflow/вещами, которые мне больше нравятся в мире Cucumber/Cuke4Nuke:

  • Документация по спецификациям довольно "облегченная" - вам нужно быть готовым к работе, чтобы собирать информацию из источников Cucumber и немного интуитивно узнать, как они применяются к Specflow. Это сказало, что я и некоторые другие имеют проекты по расширению документации, которые могут улучшиться в течение следующих нескольких месяцев.
  • Мне очень нравится опыт запуска тестов Cucumber/Cuke4Nuke в командной строке с их результатом сценариев цвета, закодированных в соответствии со статусом (я знаю, что кто-то выше видит это как отрицательный, поэтому я думаю, что это зависит от того, являетесь ли вы командой line вид парня...)
  • Сообщество Cucumber больше, и появляется больше активности, которая (возможно) переводит на большее количество людей, чтобы помочь вам.

В целом у обоих есть потенциал для улучшения способа написания программного обеспечения.