pytest: помогает писать более качественные программы
Фреймворк pytest упрощает написание небольших понятных тестов и может масштабироваться для поддержки сложного функционального тестирования приложений и библиотек.
Имя пакета PyPI: pytest
Краткий пример
# content of test_sample.py
def inc(x):
return x + 1
def test_answer():
assert inc(3) == 5
Чтобы выполнить его:
$ pytest
=========================== test session starts ============================
platform linux -- Python 3.x.y, pytest-9.x.y, pluggy-1.x.y
rootdir: /home/sweet/project
collected 1 item
test_sample.py F [100%]
================================= FAILURES =================================
_______________________________ test_answer ________________________________
def test_answer():
> assert inc(3) == 5
E assert 4 == 5
E + where 4 = inc(3)
test_sample.py:6: AssertionError
========================= short test summary info ==========================
FAILED test_sample.py::test_answer - assert 4 == 5
============================ 1 failed in 0.12s =============================
Благодаря подробной интроспекции утверждений в pytest используются только обычные инструкции assert. Основные сведения об использовании pytest см. в разделе Начало работы.
Возможности
- Подробная информация о неудачных инструкциях assert (не нужно запоминать имена
self.assert*) - Автоматическое обнаружение тестовых модулей и функций
- Модульные фикстуры для управления небольшими или параметризованными долгоживущими тестовыми ресурсами
- Может из коробки запускать тестовые наборы unittest (включая trial)
- Python 3.10+ или PyPy 3
- Богатая архитектура плагинов: более 1300 внешних плагинов и активное сообщество
Документация
- Начало работы — установка pytest и изучение основ всего за двадцать минут
- Практические руководства — пошаговые инструкции, охватывающие широкий спектр сценариев и задач
- Справочные руководства — полная справочная документация по API pytest, списки плагинов и многое другое
- Объяснения — общие сведения, обсуждение ключевых тем и ответы на вопросы высокого уровня
Ошибки и запросы
Сообщайте об ошибках и запрашивайте новые возможности в системе отслеживания задач на GitHub.
Поддержать pytest
Open Collective — это онлайн-платформа финансирования открытых и прозрачных сообществ. Она предоставляет инструменты для сбора средств и полной прозрачности финансов.
Это предпочтительная платформа для частных лиц и компаний, желающих делать разовые или ежемесячные пожертвования непосредственно проекту.
Подробнее см. на странице коллектива pytest.
pytest для предприятий
Доступно в рамках подписки Tidelift.
Сопровождающие pytest и тысячи других пакетов сотрудничают с Tidelift, чтобы предоставлять коммерческую поддержку и обслуживание зависимостей с открытым исходным кодом, которые вы используете для создания приложений. Экономьте время, снижайте риски и улучшайте качество кода, поддерживая сопровождающих именно тех зависимостей, которые вы используете.
Безопасность
Если вы обнаружили проблему, которая, по вашему мнению, является уязвимостью безопасности, не создавайте задачу — вместо этого сообщите о ней, создав новое уведомление о проблеме безопасности.
© 2015–2026 Holger Krekel and pytest-dev team
Licensed under the MIT License.
https://docs.pytest.org/en/stable/index.html