0 added
0 removed
Original
2026-01-01
Modified
2026-03-10
1
<p>Теги: python, bdd-фреймворки</p>
1
<p>Теги: python, bdd-фреймворки</p>
2
<p>Практически все основные языки программирования имеют<strong>BDD-фреймворки</strong>, предназначенные для автоматизации тестирования. Python - не исключение. Давайте посмотрим, что именно можно использовать совместно с этим популярнейшим языком программирования.</p>
2
<p>Практически все основные языки программирования имеют<strong>BDD-фреймворки</strong>, предназначенные для автоматизации тестирования. Python - не исключение. Давайте посмотрим, что именно можно использовать совместно с этим популярнейшим языком программирования.</p>
3
<p>Когда мы говорим о BDD-фреймворках, мы в большинстве случаев имеем в виду разные версии<strong>Cucumber</strong>, а также производные от<strong>JBehave</strong>-фреймворка, ну и, возможно, non-<strong>Gherkin</strong>спек-раннеры. Что касается<strong>Python</strong>, то он поддерживает много тестовых фреймворков, причем двумя наиболее "значимыми игроками" являются BDD-фреймворки<strong>behave</strong>и<strong>lettuce</strong>. Если их сравнивать, то по характеристикам итог сравнения можно сопоставить со сравнением<strong>Cucumber-JVM</strong>и<strong>JBehave</strong>.</p>
3
<p>Когда мы говорим о BDD-фреймворках, мы в большинстве случаев имеем в виду разные версии<strong>Cucumber</strong>, а также производные от<strong>JBehave</strong>-фреймворка, ну и, возможно, non-<strong>Gherkin</strong>спек-раннеры. Что касается<strong>Python</strong>, то он поддерживает много тестовых фреймворков, причем двумя наиболее "значимыми игроками" являются BDD-фреймворки<strong>behave</strong>и<strong>lettuce</strong>. Если их сравнивать, то по характеристикам итог сравнения можно сопоставить со сравнением<strong>Cucumber-JVM</strong>и<strong>JBehave</strong>.</p>
4
<p><strong>Behave</strong>у нас полностью совместим с<strong>Gherkin</strong>, тогда как у<strong>lettuce</strong>отсутствует ряд лингвистических элементов. Два этих фреймворка совместимы с основными средами разработки (IDE), для чего у них существуют соответствующие плагины.</p>
4
<p><strong>Behave</strong>у нас полностью совместим с<strong>Gherkin</strong>, тогда как у<strong>lettuce</strong>отсутствует ряд лингвистических элементов. Два этих фреймворка совместимы с основными средами разработки (IDE), для чего у них существуют соответствующие плагины.</p>
5
<p>Скажем пару слов и про<strong>radish</strong>- фреймворк, расширяющий язык<strong>Gherkin</strong>. Цель у этого расширения - возможность применения<strong>сценарных циклов</strong>, а также переменных и сценарных предусловий. Все три вышеописанных фреймворка способны записывать сценарии в отдельные feature-файлы. И все они могут внедрять определение шагов в качестве функций вместо классов, а это уже не только упрощает описание степов, делая их применение более независимым, но и предоставляет возможность избегать ненужные объектные конструкции.</p>
5
<p>Скажем пару слов и про<strong>radish</strong>- фреймворк, расширяющий язык<strong>Gherkin</strong>. Цель у этого расширения - возможность применения<strong>сценарных циклов</strong>, а также переменных и сценарных предусловий. Все три вышеописанных фреймворка способны записывать сценарии в отдельные feature-файлы. И все они могут внедрять определение шагов в качестве функций вместо классов, а это уже не только упрощает описание степов, делая их применение более независимым, но и предоставляет возможность избегать ненужные объектные конструкции.</p>
6
<p>Существуют и другие фреймворки, предназначенные для языка программирования Python: -<strong><a>pyspecs</a></strong>. Представляет собой spec-ориентированный фреймворк. -<strong><a>pytest-bdd</a></strong>. По сути, добавляет ряд Gherkin-фич в библиотеку pytest; -<strong><a>Freshen</a></strong>. Был BDD-плагином для Nose, однако эти оба проекта -- как Freshen, так и Nose, уже не поддерживаются.</p>
6
<p>Существуют и другие фреймворки, предназначенные для языка программирования Python: -<strong><a>pyspecs</a></strong>. Представляет собой spec-ориентированный фреймворк. -<strong><a>pytest-bdd</a></strong>. По сути, добавляет ряд Gherkin-фич в библиотеку pytest; -<strong><a>Freshen</a></strong>. Был BDD-плагином для Nose, однако эти оба проекта -- как Freshen, так и Nose, уже не поддерживаются.</p>
7
<p><em>По материалам http://automationpanda.com/2017/02/04/bdd-101-frameworks/.</em></p>
7
<p><em>По материалам http://automationpanda.com/2017/02/04/bdd-101-frameworks/.</em></p>
8
8