HTML Diff
0 added 0 removed
Original 2026-01-01
Modified 2026-03-10
1 <p>Теги: python, автоматизация тестирования, pytest-bdd</p>
1 <p>Теги: python, автоматизация тестирования, pytest-bdd</p>
2 <p>В<a>одной из предыдущих статей</a>мы коснулись темы автоматизации тестирования с<strong>Pytest-BDD</strong>. Все это неплохо, однако даже если команды пожелают полностью перейти на BDD, со временем они обнаружат, что разработчики тестов пишут и управляют всем кодом автоматизации тестирования напрямую, включая как создание, так и управление фича-файлами. А это уже весьма обременительно, особенно если учесть, что разработчикам тестов совсем не нужна дополнительная нагрузка.</p>
2 <p>В<a>одной из предыдущих статей</a>мы коснулись темы автоматизации тестирования с<strong>Pytest-BDD</strong>. Все это неплохо, однако даже если команды пожелают полностью перейти на BDD, со временем они обнаружат, что разработчики тестов пишут и управляют всем кодом автоматизации тестирования напрямую, включая как создание, так и управление фича-файлами. А это уже весьма обременительно, особенно если учесть, что разработчикам тестов совсем не нужна дополнительная нагрузка.</p>
3 <p>И вот в этой-то ситуации Pytest-BDD предстает перед нами во всей красе. Так как Pytest-BDD интегрирован в Pytest, появляется возможность: • писать тестовые фреймворки, которые смешивают BDD и обычные Pytest-тесты; • удалять использование BDD в случае рефакторинга в обычные Pytest-тесты.</p>
3 <p>И вот в этой-то ситуации Pytest-BDD предстает перед нами во всей красе. Так как Pytest-BDD интегрирован в Pytest, появляется возможность: • писать тестовые фреймворки, которые смешивают BDD и обычные Pytest-тесты; • удалять использование BDD в случае рефакторинга в обычные Pytest-тесты.</p>
4 <p>К примеру, мы желаем убрать BDD-инструментарий, продолжая использовать функциональность Pytest. Как вариант - переписать тест на валидную авторизацию, при этом невалидная будет продолжать применение Pytest-BDD. В результате файл<em>test_store_login.py</em>будет выглядеть приблизительно следующим образом:</p>
4 <p>К примеру, мы желаем убрать BDD-инструментарий, продолжая использовать функциональность Pytest. Как вариант - переписать тест на валидную авторизацию, при этом невалидная будет продолжать применение Pytest-BDD. В результате файл<em>test_store_login.py</em>будет выглядеть приблизительно следующим образом:</p>
5 <p>После команды<em>pytest test_store_login.py</em>оба теста будут запущены, причем для невалидной авторизации станет доступна дополнительная отчетность Pytest-BDD. Обратите внимание, что не надо манипулировать фича-файлом: его вообще можно убрать либо сохранить - на выполнение тестов автоматизации он не повлияет.</p>
5 <p>После команды<em>pytest test_store_login.py</em>оба теста будут запущены, причем для невалидной авторизации станет доступна дополнительная отчетность Pytest-BDD. Обратите внимание, что не надо манипулировать фича-файлом: его вообще можно убрать либо сохранить - на выполнение тестов автоматизации он не повлияет.</p>
6 <p>Таким образом, Pytest-BDD - весьма полезный плагин для работы с BDD и "Пайтон", причем он не ограничивает команду применением только BDD-подходов. Это не больше и не меньше "киллер-фича", которой не существует у многих других BDD-фреймворков. Ну и, конечно, это очередная веская причина использовать для автоматизации тестирования<strong>Pytest</strong>.</p>
6 <p>Таким образом, Pytest-BDD - весьма полезный плагин для работы с BDD и "Пайтон", причем он не ограничивает команду применением только BDD-подходов. Это не больше и не меньше "киллер-фича", которой не существует у многих других BDD-фреймворков. Ну и, конечно, это очередная веская причина использовать для автоматизации тестирования<strong>Pytest</strong>.</p>
7 <h4>И еще несколько плюсов:</h4>
7 <h4>И еще несколько плюсов:</h4>
8 <ul><li>полная совместимость с pytest, включая его основные плагины;</li>
8 <ul><li>полная совместимость с pytest, включая его основные плагины;</li>
9 <li>возможность использования всех преимуществ pytest-сообщества;</li>
9 <li>возможность использования всех преимуществ pytest-сообщества;</li>
10 <li>наличие фикстур как прекрасного способа управления контекстом между шагами;</li>
10 <li>наличие фикстур как прекрасного способа управления контекстом между шагами;</li>
11 <li>тесты можно фильтровать и выполнять вместе с другими pytest-тестами;</li>
11 <li>тесты можно фильтровать и выполнять вместе с другими pytest-тестами;</li>
12 <li>определениями шагов и хуков вы сможете без проблем делиться посредством conftest.py;</li>
12 <li>определениями шагов и хуков вы сможете без проблем делиться посредством conftest.py;</li>
13 <li>табличные данные для data-driven тестов можно обрабатывать лучше;</li>
13 <li>табличные данные для data-driven тестов можно обрабатывать лучше;</li>
14 <li>прекрасные туториалы и онлайн- документация;</li>
14 <li>прекрасные туториалы и онлайн- документация;</li>
15 <li>поддержка PyCharm Professional Edition.</li>
15 <li>поддержка PyCharm Professional Edition.</li>
16 </ul><p><em>Источник: https://simplythetest.tumblr.com/post/189048770415/pytest-the-awesome-parts-pytest-bdd.</em></p>
16 </ul><p><em>Источник: https://simplythetest.tumblr.com/post/189048770415/pytest-the-awesome-parts-pytest-bdd.</em></p>
17  
17