Инструмент статического анализа PHP, который находит ошибки в коде, не запуская его.
realpython/pytest-mypy
Плагин для pytest, который запускает статический анализатор типов mypy для исходных файлов во время тестов.
- Звёзды
- 257
- Форки
- 33
- Открытые issues
- 8
- Последний коммит
- 16 дней назад
Что это?
pytest-mypy добавляет проверку типов mypy в процесс работы с pytest. Если включить плагин флагом --mypy, он проверит файлы Python, переданные pytest, и сообщит об ошибках типов в результатах тестов. Так проверки типов будут выполняться вместе с существующими тестами. Плагин создан по образцу pytest-flake8, который выполняет ту же задачу для flake8.
Настройки mypy, как обычно, можно задавать в файле mypy.ini. Плагин также можно настроить через conftest.py, добавив в список его аргументов дополнительные параметры mypy, например --check-untyped-defs. Запуск pytest с флагом -m mypy ограничивает проверку типами и пропускает остальные тесты.
Проект можно установить из PyPI с помощью pip. Он распространяется по лицензии MIT.
Ключевые возможности
- 01Запускает mypy для исходных файлов во время тестов pytest
- 02Включается одним флагом --mypy
- 03Читает стандартную конфигурацию из mypy.ini
- 04Принимает дополнительные параметры mypy из conftest.py
- 05Позволяет ограничить запуск только проверкой типов с помощью -m mypy
Сценарии использования
- Выявление ошибок типов в CI-конвейере тестирования Python-проекта
- Проверка типов вместе с модульными тестами без отдельного запуска инструмента
- Применение более строгих параметров mypy, например --check-untyped-defs, только во время тестового запуска
Быстрый старт
- 1
Установите плагин из PyPI с помощью pip
pip install pytest-mypy - 2
Запустите pytest с флагом --mypy для тестовых файлов
py.test --mypy test_*.py
Что важно знать
- В README указано, что проект пока находится в разработке.
В подборках
Темы
Частые вопросы
- Что такое pytest-mypy?
- Плагин для pytest, который запускает статический анализатор типов mypy для исходных файлов во время тестов. pytest-mypy добавляет проверку типов mypy в процесс работы с pytest. Если включить плагин флагом --mypy, он проверит файлы Python, переданные pytest, и сообщит об ошибках типов в результатах тестов. Так проверки типов будут выполняться вместе с существующими тестами. Плагин создан по образцу pytest-flake8, который выполняет ту же задачу для flake8.
- pytest-mypy можно использовать бесплатно? Какая у него лицензия?
- pytest-mypy распространяется с открытым исходным кодом под лицензией MIT. Перед использованием в коммерческих продуктах проверьте условия лицензии.
- pytest-mypy всё ещё поддерживается?
- Активно поддерживается. Последний коммит в pytest-mypy — 22 окт. 2026 г..
- Для чего можно использовать pytest-mypy?
- Выявление ошибок типов в CI-конвейере тестирования Python-проекта Проверка типов вместе с модульными тестами без отдельного запуска инструмента Применение более строгих параметров mypy, например --check-untyped-defs, только во время тестового запуска
- Как установить pytest-mypy?
- Установите плагин из PyPI с помощью pip: pip install pytest-mypy Запустите pytest с флагом --mypy для тестовых файлов: py.test --mypy test_*.py
- Где скачать pytest-mypy?
- Исходный код и инструкции по установке — на GitHub: https://github.com/realpython/pytest-mypy
Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.
Похожие проекты
Статический анализатор типов Python по стандартам языка, доступный как CLI-инструмент и расширение для Visual Studio Code; подходит для крупных кодовых баз.
Чисто Python-средство проверки типов во время выполнения, которое с минимальными накладными расходами проверяет соответствие аннотациям типов PEP для функций, классов и переменных.
Проверка типов Python во время выполнения: проверяет аннотации PEP 484 у функций, произвольных объектов и локальных переменных.
Статический анализатор Ruby, который выводит типы из кода без аннотаций и стремится сообщать только о достоверно выявленных ошибках, например неопределённых методах и вызовах на nil.
Библиотека Python, которая записывает HTTP-взаимодействия во время тестов и воспроизводит их позднее, чтобы тесты запускались офлайн и детерминированно.