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, пропуск тестов.