Repolode
realpython

realpython/pytest-mypy

pytestのテスト実行中に、ソースファイルへmypyの静的型チェックを行うpytestプラグインです。

スター
257
フォーク
33
未解決の Issue
8
最終コミット
16 日前

これは何?

pytest-mypyを使うと、pytestのワークフローにmypyによる型チェックを組み込めます。--mypyフラグを有効にすると、pytestに渡したPythonファイルに対してmypyを実行し、型エラーをテスト結果として報告するため、既存のテストと一緒に型チェックを実行できます。flake8に対して同様の処理を行うpytest-flake8を参考にしています。

mypyの設定は、通常どおりmypy.iniファイルで指定できます。また、conftest.pyからプラグインを設定し、--check-untyped-defsなどの追加オプションを引数リストに追加することもできます。pytestを-m mypy付きで実行すると、ほかのテストをスキップして型チェックだけを実行できます。

このプロジェクトはPyPIからpipでインストールでき、MITライセンスで配布されています。

主な機能

  • 01pytestの実行中にソースファイルへmypyを実行
  • 02単一の--mypyフラグで有効化
  • 03標準のmypy.ini設定を読み込み
  • 04conftest.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プラグインです。 pytest-mypyを使うと、pytestのワークフローにmypyによる型チェックを組み込めます。--mypyフラグを有効にすると、pytestに渡したPythonファイルに対してmypyを実行し、型エラーをテスト結果として報告するため、既存のテストと一緒に型チェックを実行できます。flake8に対して同様の処理を行うpytest-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

概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。

関連プロジェクト