Вопрос

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

Спасибо!

Это было полезно?

Решение

(Возможно, я пристрастен, потому что я связан со SpecFlow, но вот мои мысли ...)

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

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

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

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

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

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

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

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

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

Другие советы

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

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

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

Еще одно сильно предвзятое мнение:Попробуй История Q :)

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

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

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

Попробуйте, если вам нужна сверхлегкая точка входа в BDD :)

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

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

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

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

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

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

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

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top