pytest: помогает писать более качественные программы

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

pytest Требуется: Python 3.7+ или PyPy3.

Имя пакета 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-7.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. См. раздел Get started для базового введения в использование pytest.

Характеристики

  • Подробная информация об отказах assert statements (нет необходимости запоминать имена self.assert*)

  • Auto-discovery тестовых модулей и функций

  • Modular fixtures для управления небольшими или параметризованными долгоживущими тестовыми ресурсами

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

  • Python 3.7+ или PyPy 3

  • Богатая архитектура плагинов, насчитывающая более 800+ external plugins и процветающее сообщество

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

  • Get started - установите pytest и постигните его основы всего за двадцать минут

  • How-to guides - пошаговые руководства, охватывающие широкий спектр случаев использования и потребностей

  • Reference guides - включает полную справку по API pytest, списки подключаемых модулей и многое другое

  • Explanation - история вопроса, обсуждение ключевых тем, ответы на вопросы более высокого уровня

Ошибки/Запросы

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

Поддержка pytest

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

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

Более подробную информацию смотрите в pytest collective.

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

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

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

Learn more.

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

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

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