Repolode
realpython

realpython/pytest-mypy

一个 pytest 插件,在运行测试时顺带用 mypy 对源文件做静态类型检查。

Star
257
Fork
33
未关闭 Issue
8
最近提交
16天前

这是什么?

pytest-mypy 把 mypy 类型检查接入 pytest 的工作流。使用 --mypy 参数启用后,它会对传给 pytest 的 Python 文件运行 mypy,并将类型错误作为测试结果报告,类型检查可以与现有测试一起执行。它的设计参照了 pytest-flake8 对 flake8 的做法。

mypy 的配置可以像往常一样通过 mypy.ini 文件提供。也可以在 conftest.py 中配置插件,向 mypy 的参数列表追加选项,例如 --check-untyped-defs。使用 -m mypy 可以让本次运行只执行类型检查,跳过其他测试。

项目通过 pip 从 PyPI 安装,采用 MIT 许可证。

核心功能

  • 01在 pytest 运行时对源文件执行 mypy 类型检查
  • 02通过 --mypy 参数即可启用
  • 03读取标准的 mypy.ini 配置文件
  • 04可在 conftest.py 中追加 mypy 选项
  • 05使用 -m mypy 让运行只执行类型检查

适用场景

  • 在 Python 项目的 CI 测试流程中发现类型错误
  • 让类型检查与单元测试一起执行,无需单独调用工具
  • 仅在测试运行时启用 --check-untyped-defs 等更严格的 mypy 选项

快速上手

  1. 1

    使用 pip 从 PyPI 安装插件

    pip install pytest-mypy
  2. 2

    在测试文件上使用 --mypy 参数运行 pytest

    py.test --mypy test_*.py

使用前须知

  • README 称该项目仍在开发中。

收录于专题

标签

常见问题

pytest-mypy 是什么?
一个 pytest 插件,在运行测试时顺带用 mypy 对源文件做静态类型检查。 pytest-mypy 把 mypy 类型检查接入 pytest 的工作流。使用 --mypy 参数启用后,它会对传给 pytest 的 Python 文件运行 mypy,并将类型错误作为测试结果报告,类型检查可以与现有测试一起执行。它的设计参照了 pytest-flake8 对 flake8 的做法。
pytest-mypy 可以免费使用吗?用的什么许可证?
pytest-mypy 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
pytest-mypy 还在维护吗?
活跃维护中。pytest-mypy 最近一次提交是在 2026年10月22日。
pytest-mypy 适合用来做什么?
在 Python 项目的 CI 测试流程中发现类型错误 让类型检查与单元测试一起执行,无需单独调用工具 仅在测试运行时启用 --check-untyped-defs 等更严格的 mypy 选项
pytest-mypy 怎么安装和运行?
使用 pip 从 PyPI 安装插件: pip install pytest-mypy 在测试文件上使用 --mypy 参数运行 pytest: py.test --mypy test_*.py
在哪里获取 pytest-mypy?
源代码和安装说明在 GitHub 上:https://github.com/realpython/pytest-mypy

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目