Как устанавливать и использовать плагины

В этом разделе рассказывается об установке и использовании плагинов сторонних производителей. Для написания собственных плагинов, пожалуйста, обратитесь к разделу Написание плагинов.

Установка стороннего плагина может быть легко выполнена с помощью 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.

О том, как получить имя плагина, смотрите Выяснение того, какие плагины активны.

Вернуться на верх