Всем привет. Курс стартует в OTUS в этом месяце «Инженер по контролю качества Python» .
В преддверии старта этого курса делимся с вами переводом интересного материала.
Почти все основные языки программирования имеют фреймворки для BDD-тестирование , И Питон не исключение.
А ведь их у него несколько! Так как же их сравнить и какой из них лучший? Давайте попробуем разобраться.
вести себя
вести себя один из самых популярных BDD-фреймворков Python. Несмотря на то, что он официально не является участником проекта Огурец , его функциональность очень похожа на фреймворки Cucumber.Источники:
- Тестирование Python 101: поведение
- Python, управляемый поведением
- Проект вести себя на GitHub
- Проект вести себя параллельно на GitHub
- Поведение документации
Логотип
Плюсы:
- Полностью поддерживает язык Gherkin;
- Функциональность окружения и креплений (крепежа) облегчают монтаж и демонтаж;
- Есть интеграция с Django и Flask;
- Популярен среди BDD-питонов;
- Хорошая документация и руководства;
- Есть поддержка PyCharm Профессиональная версия .
Минусы:
- Нет поддержки параллельного выполнения, для этого требуется отдельный фреймворк вести себя параллельно ;
- «Поведение» — это отдельная структура;
- Совместное использование шагов между файлами объектов может быть затруднительным.
pytest-bdd
pytest-bdd это плагин для pytest , что позволяет пользователям писать тесты в виде файлов функций Gherkin вместо тестовых функций.Поскольку он интегрирован в pytest, он может работать с любыми другими плагинами pytest, такими как pytest-html создавать красивые отчеты и pytest-xdist для параллельного тестирования.
Он также использует приспособления pytest для внедрения зависимостей.
Источники:
- Тестирование Python 101: pytest-bdd
- Тестирование Python 101: pytest
- Проект pytest-bdd на GitHub
- Документация для pytest-bdd
- pytest.org
Логотип
Плюсы:
- Полностью совместим с pytest и его основными плагинами;
- Вы можете пользоваться всеми преимуществами сообщества pytest;
- Фикстуры — отличный способ управлять контекстом между шагами;
- Тесты можно фильтровать и запускать вместе с другими тестами pytest;
- Определения шагов и перехватчиков можно легко опубликовать с помощью conftest.py;
- Табличные данные могут быть лучше обработаны для тесты, управляемые данными ;
- Отличная онлайн-документация и учебные пособия;
- Есть поддержка PyCharm Профессиональная версия .
Минусы:
- Модули определения шагов должны иметь явные объявления для файлов функций (через «@scenario» или функцию «scenarios»);
- План сценария поведения должен обрабатываться по-другому.
редис
редис — это BDD-фреймворк с особенностью: он добавляет новый синтаксис в язык Gherkin. Такие возможности языка, как циклы сценариев, предварительные условия сценариев и константы, делают Gherkin in редиса более программным для тестовых случаев.
Источники:
- Проект редис на GitHub;
- редис-bdd.io
- Документация по редису
Логотип
Плюсы:
- Расширения языка Gherkin позволяют тестировщикам писать более качественные тесты;
- Сайт, документация и логотип – все на месте;
- Файлы функций и определения шагов очень понятны.
Минусы:
- Это автономный фреймворк с ограниченным количеством расширений;
- Приверженцам BDD могут не понравиться дополнения к синтаксису Gherkin.
латук
латук — еще один «овощной» BDD-фреймворк Python, известный уже несколько лет. Однако его сайт и код уже давно не обновлялись.
Источники:
Логотип:
Плюсы:
- Простой код;
- Проверено и хорошо.
Минусы:
- Не такой богатый функционал, как в других фреймворках;
- Похоже, что у него нет активной постоянной поддержки.
освежить
освежить один из самых первых фреймворков для BDD-тестирования на Python. Это был плагин для нос .Однако и Freshen, и Nose больше не поддерживаются, и на их странице документации четко указано использование других фреймворков.
Рекомендации
Ни одна из этих платформ не идеальна, но многие из них имеют существенные преимущества.В целом, я бы рекомендовал использовать pytest-bdd, поскольку он использует сильные стороны pytest. Я считаю, что pytest — один из лучших фреймворков для тестирования на любом языке благодаря своей лаконичности, оснащенности, утверждениям и плагинам.
Опрос разработчиков Python 2018 г.
показал, что pytest также является самой популярной средой тестирования на Python. Несмотря на то, что pytest-bdd выглядит не так безупречно, как ведет себя, я считаю, что некоторые специалисты TLC из сообщества открытого исходного кода смогут это исправить.
И еще несколько рекомендаций:
- Используйте поведение, если вам нужен надежный, чистый опыт разработки и большое сообщество.
- Используйте pytest-bdd, если вам нужна интеграция с другими плагинами, которые уже содержат кучу тестов pytest, или если вам нужно параллельное выполнение тестов.
- Используйте редис, если вам нужен больший программный контроль над тестированием на уровне Gherkin.
- Не используйте салат и не освежайте его.
-
Когнитивные Искажения При Создании Продукта
19 Dec, 24 -
Krita 2.9: Релиз Благодаря Kickstarter
19 Dec, 24 -
Голосование За Удаление Комментариев
19 Dec, 24 -
Mipsfpga – Практический Опыт
19 Dec, 24 -
Ускорьте Загрузку Javascript И Css
19 Dec, 24 -
Контролируйте Скорость Вашего Сайта
19 Dec, 24