- PVSM.RU - https://www.pvsm.ru -
Всем привет. Уже в этом месяце в ОТУС стартует курс "Python QA Engineer" [1]. В преддверии старта данного курса делимся с вами переводом интересного материала.
Почти все основные языки программирования имеют фреймворки для BDD тестирования [2], и Python [3] не исключение. И по факту, у него их несколько! Итак, как их сравнить и какой из них лучший? Попробуем разобраться.
behave [4] один из самых популярных BDD фреймворков питона. Несмотря на то, что он официально не является частью проекта Cucumber [5], его функционал достаточно схож с фреймворками Cucumber.
pytest-bdd [11] – это плагин для pytest [12], который позволяет пользователями писать тесты в виде feature-файлов Gherkin вместо тестовых функций. Поскольку он интегрирован в pytest, он может работать с любыми другими pytest плагинами, такими как pytest-html [13] для создания красивых отчетов и pytest-xdist [14] для параллельного тестирования. Он также использует фикстуры pytest для инъекции зависимостей.
radish [19] – это BDD фреймворк с изюминкой: он добавляет новый синтаксис в язык Gherkin. Особенности языка, такие как циклы сценариев, предварительные условия сценариев и константы делают Gherkin в radish более программным для тестовых кейсов.
lettuce [22] – еще один «овощной» BDD Python-фреймворк, который известен вот уже несколько лет. Однако его сайт и код давно не обновлялись.
freshen [24] один из самых первых фреймворков для BDD-тестирования на Python. Он был плагином для nose [25]. Однако и freshen и nose больше не поддерживаются, и на странице их документации ясно сказано использовать другие фреймворки.
Ни один из приведенных фреймворков не идеален, однако у многих из них есть существенные преимущества. В целом, я бы порекомендовал использовать pytest-bdd, поскольку он имеет все преимущества сильных сторон pytest. Я считаю, что pytest – это один из лучших фреймворков для тестирования на любом языке из-за его лаконичности, фикстур, assert’ов и плагинов. 2018 Python Developers Survey [26] показал, что pytest является самым популярным фреймворком для тестирования и на Python. Несмотря на то, что pytest-bdd не выглядит настолько «отполированным», как behave, я считаю, что некоторые TLC из комьюнити с открытым исходным кодом в силах это исправить.
И еще немного рекомендаций:
А какой ваш любимый фреймворк для BDD? Пожалуйста, поделитесь в комментариях!
Автор: Николай
Источник [27]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/python/323969
Ссылки в тексте:
[1] "Python QA Engineer": https://otus.pw/dyVr/
[2] BDD тестирования: https://automationpanda.com/2017/02/04/bdd-101-frameworks/
[3] Python: https://automationpanda.com/python/
[4] behave: https://automationpanda.com/2018/05/11/python-testing-101-behave/
[5] Cucumber: https://cucumber.io/
[6] Behavior-Driven Python: https://automationpanda.com/2018/05/28/behavior-driven-python/
[7] behave: https://github.com/behave/behave
[8] behave-parallel: https://github.com/hugeinc/behave-parallel
[9] Документация behave: https://behave.readthedocs.io/
[10] PyCharm Professional Edition: https://www.jetbrains.com/pycharm/
[11] pytest-bdd: https://automationpanda.com/2018/10/22/python-testing-101-pytest-bdd/
[12] pytest: https://automationpanda.com/2017/03/14/python-testing-101-pytest/
[13] pytest-html: https://github.com/pytest-dev/pytest-html
[14] pytest-xdist: https://github.com/pytest-dev/pytest-xdist
[15] pytest-bdd: https://github.com/pytest-dev/pytest-bdd
[16] Документация для pytest-bdd: https://pytest-bdd.readthedocs.io/
[17] pytest.org: https://docs.pytest.org/
[18] data-driven тестов: https://en.wikipedia.org/wiki/Data-driven_testing
[19] radish: http://radish-bdd.io/
[20] radish: https://github.com/radish-bdd/radish
[21] Документация radish: https://radish.readthedocs.io/
[22] lettuce: http://lettuce.it/
[23] lettuce: https://github.com/gabrielfalcao/lettuce
[24] freshen: https://github.com/rlisagor/freshen
[25] nose: https://nose.readthedocs.io/en/latest/
[26] 2018 Python Developers Survey: https://www.jetbrains.com/research/python-developers-survey-2018/
[27] Источник: https://habr.com/ru/post/460046/?utm_source=habrahabr&utm_medium=rss&utm_campaign=460046
Нажмите здесь для печати.