Перейти к содержанию

pytest

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

Содержание раздела

  • Обзор pytest — краткое описание фреймворка, его возможностей и структуры официальной документации.
  • Быстрый старт — установка pytest, первый тест, группировка тестов в классы, pytest.approx, временные каталоги.
  • Как запускать pytest — варианты запуска тестов (по файлам, классам, маркерам, выражениям -k, пакетам), чтение аргументов из файла, помощь, профилирование, плагины, вызов через python -m pytest и pytest.main().
  • Утверждения и проверки — использование assert, подробная интроспекция выражений, pytest.approx, pytest.raises, pytest.RaisesGroup/RaisesExc, предупреждения, нестандартные объяснения падений, переписывание assert.
  • Фикстуры: how-to — практическое руководство по фикстурам: запрос и переиспользование фикстур, области видимости, autouse, teardown (yield и addfinalizer), безопасные teardown, сложные сценарии.
  • Справочник по фикстурам — обзор встроенных фикстур, доступность фикстур, conftest.py, фикстуры из плагинов, порядок создания с учётом scope, зависимостей и autouse.
  • Маркировка тестов — использование pytest.mark, встроенные маркеры, регистрация пользовательских маркеров, строгая проверка неизвестных маркеров (strict_markers).
  • Параметризация@pytest.mark.parametrize, стекование декораторов, пустые наборы параметров, pytest_generate_tests, пример с опцией --stringinput.
  • Subtests — группировка проверок внутри одного теста, вывод результатов, сравнение параметризации и subtests, управление подробностью, типизация (pytest.Subtests).
  • Временные каталоги и файлы — фикстуры tmp_path, tmp_path_factory, tmpdir, tmpdir_factory, структура временных каталогов, --basetemp, политика хранения.
  • monkeypatch/mock — патчинг функций, объектов, словарей и переменных окружения, изменение sys.path и PATH, глобальные патчи (запрет requests), контекст monkeypatch.context().
  • doctest — запуск doctest из файлов и docstring, кодировка, опции doctest (включая pytest‑специфичные), продолжение после падений, форматы diff, фикстуры в doctest, doctest_namespace, пропуск тестов.