Pytest-BDD на практике
В одной из предыдущих статей мы коснулись темы автоматизации тестирования с Pytest-BDD. Все это неплохо, однако даже если команды пожелают полностью перейти на BDD, со временем они обнаружат, что разработчики тестов пишут и управляют всем кодом автоматизации тестирования напрямую, включая как создание, так и управление фича-файлами. А это уже весьма обременительно, особенно если учесть, что разработчикам тестов совсем не нужна дополнительная нагрузка.
И вот в этой-то ситуации Pytest-BDD предстает перед нами во всей красе. Так как Pytest-BDD интегрирован в Pytest, появляется возможность: • писать тестовые фреймворки, которые смешивают BDD и обычные Pytest-тесты; • удалять использование BDD в случае рефакторинга в обычные Pytest-тесты.
К примеру, мы желаем убрать BDD-инструментарий, продолжая использовать функциональность Pytest. Как вариант — переписать тест на валидную авторизацию, при этом невалидная будет продолжать применение Pytest-BDD. В результате файл test_store_login.py будет выглядеть приблизительно следующим образом:
После команды pytest test_store_login.py оба теста будут запущены, причем для невалидной авторизации станет доступна дополнительная отчетность Pytest-BDD. Обратите внимание, что не надо манипулировать фича-файлом: его вообще можно убрать либо сохранить — на выполнение тестов автоматизации он не повлияет.
Таким образом, Pytest-BDD – весьма полезный плагин для работы с BDD и «Пайтон», причем он не ограничивает команду применением только BDD-подходов. Это не больше и не меньше «киллер-фича», которой не существует у многих других BDD-фреймворков. Ну и, конечно, это очередная веская причина использовать для автоматизации тестирования Pytest.
И еще несколько плюсов:
- полная совместимость с pytest, включая его основные плагины;
- возможность использования всех преимуществ pytest-сообщества;
- наличие фикстур как прекрасного способа управления контекстом между шагами;
- тесты можно фильтровать и выполнять вместе с другими pytest-тестами;
- определениями шагов и хуков вы сможете без проблем делиться посредством conftest.py;
- табличные данные для data-driven тестов можно обрабатывать лучше;
- прекрасные туториалы и онлайн- документация;
- поддержка PyCharm Professional Edition.
Источник: https://simplythetest.tumblr.com/post/189048770415/pytest-the-awesome-parts-pytest-bdd.