pytest: документация на русском языке

Актуальная версия: pytest 5.4.1.

Официальная документация pytest: https://docs.pytest.org/en/latest/.

Сайт находится в разработке.

pytest: поможет вашим программам стать лучше!

Фреймворк 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-5.x.y, py-1.x.y, pluggy-0.x.y
cachedir: $PYTHON_PREFIX/.pytest_cache
rootdir: $REGENDOC_TMPDIR
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
============================ 1 failed in 0.12s =============================

Поскольку pytest детально анализирует результат выполнения оператора assert, можно использовать только простые и понятные конструкции. Больше примеров можно найти тут Установка и начало работы.

Возможности pytest

  • подробный разбор упавших проверок assert (не нужно помнить имена self.assert*);

  • автообнаружение тестовых модулей и функций;

  • использование модульных фикстур для управления небольшими или параметризованными тестовыми ресурсами;

  • запуск тестовых наборов, написанных с использованием unittest (включая пробные) и nose;

  • совместим с Python 3.5+ и PyPy 3;

  • у pytest есть большой набор (315 + внешних плагинов) и процветающее сообщество.

Документация

Полная документация: Оглавление.

Баги/Запросы на улучшение

Пожалуйста, используйте GitHub issue tracker ,чтобы сообщить о багах или внести предложения об улучшении pytest.

Журнал изменений (changelog)

Информация об исправленных багах и улучшениях: журнал изменений.

Поддержка pytest

Open Collective - это онлайн-платформа для финансирования проектов с открытым кодом. Она предоставляет прозрачные инструменты для сбора средств и обмена финансами.

Это платформа выбора для частных лиц и компаний, которые хотят сделать одноразовые или ежемесячные пожертвования непосредственно на проект.

Узнайте больше на pytest collective.

pytest для предприятий

Доступно в рамках подписки на Tidelift.

Разработчики pytest и тысяч других пакетов работают с Tidelift, чтобы обеспечить коммерческую поддержку и обслуживание зависимостей с открытым исходным кодом, которые вы используете для создания своих приложений. Экономьте время, снижайте риск и улучшайте работоспособность кода, одновременно оплачивая разработчикам именно те зависимости, которые вы используете.

Подробнее

Безопасность

Безопасность никогда не была слабым местом pytest, однако вы можете использовать Tidelift security contact, чтобы сообщить о найденной уязвимости в сфере безопасности. Tidelift будет координировать обнаружение и исправление таких багов.

Лицензия

Copyright Holger Krekel and others, 2004-2020.

Распространяемый в соответствии с условиями лицензии MIT , pytest является бесплатным программным обеспечением с открытым исходным кодом.