Разработчик(и) | Аслак Хеллесой, [1] Джозеф Уилк, [2] Мэтт Винн, [3] Грегори Хнатюк, [4] Майк Сассак [5] |
---|---|
Стабильный релиз | 9.1.2 [6] / 7 мая 2023 г.; 11 декабря 2023 г.; 16 января 2024 г. |
Репозиторий |
|
Написано в | Рубин |
Операционная система | Кроссплатформенный |
Тип | Фреймворк разработки, основанный на поведении / Инструмент тестирования |
Лицензия | Лицензия Массачусетского технологического института |
Веб-сайт | огурец.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]
{{cite book}}
: CS1 maint: дата и год ( ссылка ){{cite book}}
: CS1 maint: дата и год ( ссылка )