Как устанавливать и использовать плагины¶
В этом разделе рассказывается об установке и использовании плагинов сторонних производителей. Для написания собственных плагинов, пожалуйста, обратитесь к разделу Написание плагинов.
Установка стороннего плагина может быть легко выполнена с помощью pip
:
pip install pytest-NAME
pip uninstall pytest-NAME
Если плагин установлен, pytest
автоматически находит и интегрирует его, нет необходимости его активировать.
Вот небольшой аннотированный список некоторых популярных плагинов:
pytest-django: писать тесты для приложений django, используя интеграцию pytest.
pytest-twisted: писать тесты для приложений twisted, запускать реактор и обрабатывать деферреды от тестовых функций.
pytest-cov: отчет о покрытии, совместим с распределенным тестированием
pytest-xdist: распределять тесты по процессорам и удаленным хостам, запускать в коробочном режиме, что позволяет пережить ошибки сегментации, запускать в режиме looponfailing, автоматически перезапуская неудачные тесты при изменении файлов.
pytest-instafail: для сообщения о сбоях во время выполнения теста.
pytest-bdd: писать тесты, используя тестирование, ориентированное на поведение.
pytest-timeout: для таймаута тестов, основанных на метках функций или глобальных определениях.
pytest-pep8: опция
--pep8
для включения проверки соответствия PEP8.pytest-flakes: проверка исходного кода с помощью pyflakes.
allure-pytest: сообщить результаты тестирования через allure-framework.
Чтобы посмотреть полный список всех плагинов с их последним статусом тестирования на различных версиях pytest и Python, пожалуйста, посетите Список плагинов.
Вы также можете обнаружить больше плагинов через pytest- pypi.org search.
Требование/загрузка плагинов в тестовый модуль или файл conftest¶
Вы можете потребовать подключаемые модули в модуле тестирования или в файле conftest, используя pytest_plugins
:
pytest_plugins = ("myapp.testsupport.myplugin",)
При загрузке модуля тестирования или плагина conftest указанные плагины также будут загружены.
Примечание
Необходимость использования плагинов с помощью переменной pytest_plugins
в некорневых conftest.py
файлах является устаревшей. Смотрите full explanation в разделе Запись подключаемых модулей.
Примечание
Имя pytest_plugins
зарезервировано и не должно использоваться в качестве имени для пользовательского модуля плагина.
Выяснение того, какие плагины активны¶
Если вы хотите узнать, какие плагины активны в вашей среде, вы можете ввести:
pytest --trace-config
и получит расширенный тестовый заголовок, который показывает активированные плагины и их имена. Он также будет выводить локальные плагины, ака файлы conftest.py, когда они загружены.
Деактивация / снятие с регистрации плагина по имени¶
Вы можете запретить загрузку плагинов или снять их с регистрации:
pytest -p no:NAME
Это означает, что все последующие попытки активировать/загрузить названный плагин не будут работать.
Если вы хотите безоговорочно отключить плагин для проекта, вы можете добавить эту опцию в ваш файл pytest.ini
:
[pytest]
addopts = -p no:NAME
В качестве альтернативы, чтобы отключить его только в определенных окружениях (например, на CI-сервере), вы можете установить переменную окружения PYTEST_ADDOPTS
в значение -p no:name
.
О том, как получить имя плагина, смотрите Выяснение того, какие плагины активны.