Альтернатива огірків для .NET


80

Швидкий, чи хтось стикався з бібліотекою, подібною до огірка Рубі (читабельний DSL для визначення історій використання, які можна перевірити) у сфері .NET?

Відповіді:


91

Ви також повинні перевірити SpecFlow , тобто проект з відкритим кодом для створення BDD з .NET.

SpecFlow використовує той же формат визначення (Корнішон), що і огірок, але ви можете писати свої визначення кроків у .NET. Він в основному генерує класи модульних тестів (NUnit, MsTest, xUnit тощо) з ваших файлів функцій, тому ви можете використовувати той самий механізм виконання модульних тестів, як це робите з реальними модульними тестами. Таким чином, також простіше інтегрувати функціональні тести BDD до побудови інтеграції.

В останніх версіях SpecFlow має функцію розфарбовування синтаксису для Visual Studio 2010 та підтримку Silverlight та Mono / MonoDevelop.


35

Звичайно. Це називається Огірок . Є приклад того, як протестувати .NET-код у каталозі прикладів Cucumber та документації до Wiki-огірка для .NET та Mono .


Я спробував це, але продовжував бити удар, запускаючи обгортку ICucumber. В отриманому мені повідомленні йдеться про те, що файл конфігурації .yml відсутній.
Оуен,

Спробував і все описане тут: thomaslundstrom.blogspot.com/2009/03/…
Оуен

1
Я здогадуюсь, ви посилаєтесь на це повідомлення: "cucumber.yml не знайдено. Будь ласка, зверніться до документації щодо огірка щодо визначення профілів у cucumber.yml. Ви повинні визначити профіль за замовчуванням, щоб використовувати команду cucumber без будь-яких аргументів. Введіть 'cucumber --help' для використання. (Cucumber :: Cli :: YmlLoadError) ", так? Очевидним питанням, коли програма скаржиться на те, що не вдалося знайти файл, є, чи є файл насправді чи ні? Тому що, якщо файлу немає, то причина, через яку його не вдалося знайти, є очевидною ...
Jörg W Mittag

1
Я все ще не зовсім розумію, що ти маєш на увазі. Посилання, яке ви розмістили, абсолютно нічого спільного з вашою проблемою не має. І що ви маєте на увазі під "файлом, здається, там є"? Ви написали файл, ви зберегли файл, ви повинні знати, чи є він там чи ні!
Jörg W Mittag

1
Ваші приклади та посилання на вікі - 404
mattumotu

20

Здається, у цьому просторі є 3 можливості:

  1. Використовуйте огірок та IronRuby. Ось щоденник із кількох кроків, щоб розпочати з цього. Недоліком, здається, є продуктивність. Я читав розповіді, які кажуть , що це взагалі повільніше , і інші, які кажуть, що це просто дуже повільно крутитися . Однак це далеко не остаточно, оскільки IronRuby все ще активно розвивається.

  2. Використовуйте Cuke4Nuke . Я чув, як цей продукт рекомендували кілька разів. Він насправді використовує звичайні Ruby та Cucumber, але запускає ваш .NET-код через сервер. На щастя, все це ускладнення є прозорим, коли ви ним користуєтесь. Cuke4Nuke більше не перебуває в активній розробці.

  3. Використовуйте SpecFlow . Це .NET-порт Огірка. Через це він може мати не всі особливості Огірка, а може мати додаткові функції. Приємно те, що вам не потрібно встановлювати Рубі.

На даний момент невідомо, який із них найкращий варіант. Особисто я планую почати з Cuke4Nuke.


2
Для кожного, хто читає це, здається, що Cuke4Nuke припинено на користь SpecFlow richardlawrence.info/2011/10/21/the-future-of-cucumber-on-net
GuiSim

3

Я написав допис у блозі, в якому детально описував процес, за яким я керувався огірком за допомогою IronRuby: http://hotgazpacho.org/2009/06/cucumber-and-ironruby-it-runs/


Хворо проб'юся і повернусь до вас.
Оуен

Я також працюю над перенесенням win32console на IronRuby, щоб ми могли отримати кольоровий вивід консолі, як це робимо в МРТ: github.com/hotgazpacho/ironruby-win32console
Will Green


3

BDD простою англійською мовою можна зробити за допомогою Concordion.NET . Специфікації очікуваної поведінки написані в HTML.

Для тестів Concordion.NET можна використовувати будь-які речення будь-якої структури. Наприклад, не потрібно писати таке речення, як "з урахуванням банківського рахунку із залишком 10 $, коли ініціюється зняття 20 $, транзакція не вдається". Натомість може бути використано будь-який тип пропозиції, наприклад, "транзакція на 20 доларів не вдається, якщо на рахунку недостатньо залишку в 10 доларів".

Тести Concordion.NET виконуються за допомогою NUnit, який інтегрований у безліч різних середовищ: https://github.com/concordion/concordion-net


2

Існує також StoryQ. Це розроблений розробником підхід до історій користувачів, який може звітувати про клієнтів. http://storyq.codeplex.com

StoryQ - це портативна (одна dll) вбудована структура BDD для .NET 3.5. Він працює у вашому існуючому тестовому модулі та допомагає створити дружній для людини результат тесту (html або текст). Потужний інтерфейс StoryQ додає до вашої граматики BDD сильний набір тексту, інтелісенс та документацію.


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.