Огурец (программное обеспечение)

Программный инструмент
Огурец
Разработчик(и)Аслак Хеллесой, [1] Джозеф Уилк, [2] Мэтт Винн, [3] Грегори Хнатюк, [4] Майк Сассак [5]
Стабильный релиз
9.1.2 [6]  / 7 мая 2023 г.; 11 декабря 2023 г.; 16 января 2024 г.
Репозиторий
  • github.com/cucumber/cucumber-ruby
Написано вРубин
Операционная системаКроссплатформенный
Тип Фреймворк разработки, основанный на поведении / Инструмент тестирования
ЛицензияЛицензия Массачусетского технологического института
Веб-сайтогурец.io

Cucumber — это программный инструмент, поддерживающий разработку на основе поведения (BDD). [7] [8] [9] [10] [11] [12] Центральным элементом подхода Cucumber BDD является его обычный языковой анализатор, называемый Gherkin . Он позволяет определять ожидаемое поведение программного обеспечения на логическом языке, понятном клиентам. Таким образом, Cucumber позволяет выполнять документацию функций, написанную в тексте, ориентированном на бизнес. [13] [7] [8] Он часто используется для тестирования другого программного обеспечения. [14] Он запускает автоматизированные приемочные тесты, написанные в стиле разработки на основе поведения (BDD). [15]

Cucumber изначально был написан на языке программирования Ruby . [7] [16] [8] и изначально использовался исключительно для тестирования Ruby как дополнение к фреймворку RSpec BDD. Cucumber теперь поддерживает множество различных языков программирования через различные реализации, включая Java [17] [8] и JavaScript . [18] [19] Существует порт Cucumber на .NET под названием SpecFlow, [20] [21] [22] теперь замененный Reqnroll. [23]

Язык корнишонов

Gherkin — это язык, который Cucumber использует для определения тестовых случаев. Он разработан так, чтобы быть нетехническим и понятным человеку, и в совокупности описывает варианты использования, относящиеся к программной системе. [7] [8] [24] [25] Цель синтаксиса Gherkin — продвигать практики разработки, основанные на поведении, во всей команде разработчиков, включая бизнес-аналитиков и менеджеров. Он стремится обеспечить соблюдение твердых, недвусмысленных требований, начиная с начальных фаз определения требований руководством бизнеса и на других этапах жизненного цикла разработки.

Помимо предоставления скрипта для автоматизированного тестирования, синтаксис естественного языка Gherkin разработан для предоставления простой документации тестируемого кода. [25] В настоящее время Gherkin поддерживает ключевые слова на десятках языков. [25] [26] [7] [8]

Синтаксис

Синтаксис сосредоточен вокруг строчно-ориентированного дизайна , похожего на таковой в Python . Структура файла определяется с помощью пробелов и других управляющих символов. [25] Строки, начинающиеся с , #считаются комментариями и могут быть размещены в любом месте файла. [25] Инструкции — это любая непустая и некомментарная строка. Они состоят из распознаваемого ключевого слова Gherkin, за которым следует строка. [27]

Все файлы Gherkin имеют .featureрасширение файла. Они содержат одно определение Feature для тестируемой системы и представляют собой исполняемый тестовый скрипт. [27]

Вот пример синтаксиса: [28]

Особенность: Угадай слово # Первый пример состоит из двух шагов. Сценарий: Создатель начинает игру.  Когда Создатель начинает игру, Затем Создатель ждет, пока Разрушитель присоединится.   # Второй пример состоит из трех шагов. Сценарий: Разрушитель присоединяется к игре.  Создатель начал игру со словом « шелковый ». Когда Разрушитель присоединяется к игре Создателя , Разрушитель должен угадать слово из 5 символов.   

Командная строка

Cucumber поставляется со встроенным интерфейсом командной строки, который охватывает полный список инструкций. Как и большинство инструментов командной строки, cucumber предоставляет опцию --help, которая предоставляет сводку аргументов, принимаемых командой. [29]

$ cucumber  --help  -r, --require LIBRARY|DIR Требовать файлы перед выполнением функций.  --i18n LANG Список ключевых слов для определенного языка.  Запустите с "--i18n help", чтобы увидеть все языки.  -f, --format ФОРМАТ Как форматировать функции (по умолчанию: pretty).  -o, --out [FILE|DIR] Записать вывод в файл/каталог вместо  ...

Командная строка Cucumber может использоваться для быстрого запуска определенных тестов. Она также поддерживает запуск подмножества сценариев путем фильтрации тегов.

$ огурец  --теги  @имя-тега

Вышеуказанная команда помогает выполнять только те сценарии, которые имеют указанный @tag-name. [29] Аргументы могут быть предоставлены как логическая ORили ANDоперация тегов. Помимо тегов, сценарии могут быть отфильтрованы по именам сценариев. [29]

$ огурец  --имя выход из системы 

Приведенная выше команда запустит только те сценарии, которые содержат слово «logout».

Также полезно знать, что пошло не так, когда тест не пройден. Cucumber позволяет легко обнаружить ошибки в коде с помощью этой --backtraceопции. [29]

Ссылки

  1. ^ "Аслак Хеллесой". Aslakhellesoy.com . Проверено 24 января 2012 г.
  2. ^ "Джозеф Уилк | об ИИ, Интернете, удобстве использования, тестировании и процессе разработки ПО". Blog.josephwilk.net . Получено 24.01.2012 .
  3. ^ "Развитие, основанное на чае". Blog.mattwynne.net . Получено 24.01.2012 .
  4. ^ "Профиль ghnatiuk". GitHub . Получено 2012-01-24 .
  5. ^ "Профиль msassak". GitHub . Получено 2012-01-24 .
  6. ^ "Release 9.1.2". 7 мая 2023 г. Получено 30 мая 2023 г.
  7. ^ abcde "The Pragmatic Bookshelf | The Cucumber Book". Pragprog.com. Архивировано из оригинала 21.01.2012 . Получено 24.01.2012 .
  8. ^ abcdef Rose, Seb; Wynne, Matt; Hellesøy, Aslak (15 февраля 2015 г.). Pragmatic Bookshelf | The Cucumber For Java Book. Pragprog.com . Получено 28.04.2019 .
  9. ^ "Что такое огурец?". огурец . Получено 2019-06-08 .
  10. ^ Аслак Хеллесой. «Самый непонятый инструмент для совместной работы в мире». огурец .
  11. ^ Надь, Гаспар; Роуз, Себ (07 марта 2017 г.). Книги BDD - Открытие. Линпаб. ISBN 978-1983591259.{{cite book}}: CS1 maint: дата и год ( ссылка )
  12. ^ Роуз, Себ; Надь, Гаспар (27 апреля 2021 г.). Книги BDD – Формулировка. Линпаб. ISBN 979-8723395015.{{cite book}}: CS1 maint: дата и год ( ссылка )
  13. ^ Фокс, Армандо; Паттерсон, Дэвид (2016). Инженерное программное обеспечение как услуга . Strawberry Canyon. стр. 218–255. ISBN 978-0-9848812-4-6.
  14. ^ "Автоматизированное тестирование с Selenium и Cucumber". www.ibm.com . 2013-08-06 . Получено 2017-02-09 .
  15. ^ Соекен, Матиас; Вилле, Роберт; Дрекслер, Рольф (29 мая 2012 г.). Фурия, Карло А.; Нанц, Себастьян (ред.). Объекты, модели, компоненты, шаблоны . Конспекты лекций по информатике. Шпрингер Берлин Гейдельберг. стр. 269–287. дои : 10.1007/978-3-642-30561-0_19. ISBN 9783642305603.
  16. ^ "The Pragmatic Bookshelf | The RSpec Book". Pragprog.com. 2010-12-02. Архивировано из оригинала 2012-01-21 . Получено 2012-01-24 .
  17. ^ "Cucumber-jvm". cucumber . Получено 2018-03-08 .
  18. ^ "Cucumber-js". огурец . Получено 2018-03-08 .
  19. ^ Naidele Manjunath; Olivier de Meulder (01.02.2019). «Нет кода? Нет проблем — написание тестов на простом английском». Times Open . Получено 29.04.2019 .
  20. ^ "Привязка бизнес-требований к коду .NET". SpecFlow . Получено 29.04.2019 .
  21. ^ "SpecFlow". GitHub . Получено 29.04.2019 .
  22. ^ Ричард Лоуренс; Пол Рейнер (2018). Развитие на основе поведения с помощью Cucumber . Эддисон Уэсли.
  23. ^ Надь, Гаспар. «От SpecFlow к Reqnroll: почему и как». reqnroll.net . Повторить . Проверено 18 апреля 2024 г.
  24. ^ "огурец/корнишон". GitHub . Получено 2017-02-09 .
  25. ^ abcde "Синтаксис корнишона". cucumber . Получено 2019-07-09 .
  26. ^ "Поддерживаемые языки Gherkin". Gherkin. cucumber/cucumber: Монорепозиторий Cucumber — строительные блоки для Cucumber на разных языках . Получено 21.03.2021 — через GitHub .
  27. ^ ab "Reference". cucumber . Архивировано из оригинала 2015-10-25 . Получено 2016-01-17 .
  28. ^ "Gherkin Reference". cucumber . Архивировано из оригинала 2024-01-13 . Получено 2024-02-11 .
  29. ^ abcd Уинн, Мэтт; Хеллесой, Аслак. "The Cucumber Book". SafariBooksOnline . Получено 22 января 2016 г. .
  • Огуречный проект
  • Документация по проекту «Огурец»
Взято с "https://en.wikipedia.org/w/index.php?title=Cucumber_(программное обеспечение)&oldid=1252165255"