coveragepy/coveragepy:Pythonテスト向けコードカバレッジ計測
Python 用のコード カバレッジ ツール。 Python 標準ライブラリで提供されるコード分析ツールとトレース フックを使用して、どの行が実行可能か、どの行が実行されたかを判断します。
ひと目でわかる
- これは何?
- 標準ライブラリの解析とトレースフックで実行行を記録。Python 3.10から3.15 rc1、PyPy3 3.10/3.11対応。Apache-2.0。
- 誰に向いている?
- CIでpytestと組み合わせる用途向け。`pip install coverage==7.16.0`で版を固定し、coverage.readthedocs.ioのQuick Startどおりcoverage run -m pytestを実行してhtmlレポートを生成する手順がREADMEで示される入口です。
- 商用利用できる?
- できます。Apache-2.0 は寛容なライセンスで、著作権表示とライセンス表示を残せば、使用・改変・販売が可能です。
- 今もメンテナンスされている?
- されています。最後のコミットは 2 日前です。
- 何の言語で書かれている?
- 主に Python です(GitHub の言語統計による)。
回答はプロジェクトの GitHub データ(最終同期:2026年9月15日)と当サイトの分析に基づくもので、法的助言ではありません。
オープンソース詳細解説
テスト実行中の行カバレッジを測る標準ツール
coveragepy/coveragepyはPython向けコードカバレッジ計測ツールです。README/README.rstでは、テスト実行中にどの行が実行可能でどれが実行されたかを、Python標準ライブラリのコード解析とトレーシングフックで判定すると説明しています。ホームページはcoverage.readthedocs.io、ライセンスはApache-2.0、PyPIパッケージ名はcoverageです。対応PythonはREADME記載のとおり3.10から3.15 rc1(free-threading含む)およびPyPy3 3.10/3.11です。GitHubメタデータでは約3400スター、オープンイシュー307件、最新タグ7.16.0(2026-08-28)が確認できます。 追加段落:README一次情報に基づき、本リポジトリの公開範囲はドキュメントとソースに限定されます。star数やfork数はGitHubメタデータ由来の注目指標であり、機能保証やSLAを意味しません。導入判断では、READMEが示す具体コマンド・設定キー・バージョン番号を手元環境で再現し、期待する入出力が得られるかを記録してください。READMEに無い性能数値、互換マトリックス、セキュリティ監査結果は推測で補わず、issue/リリースノート/公式サイトで確認できる事実だけを採用記録に残します。
Quick StartとRead the Docsへの委譲
READMEは実際の使い方をQuick Start節へ委譲しています。「Looking to run coverage on your test suite? See the Quick Start section of the docs.」とあり、詳細手順はhttps://coverage.readthedocs.io/#quick-start にあります。変更履歴はchanges.html、コントリビューションはcontributing.html、セキュリティ報告はTidelift security contact経由とREADMEに記載されています。Python Community Code of Conductへの準拠も明記されています。README本体にはpip installコマンドの全文は載っていませんが、PyPIバッジはpypi.org/project/coverage/を指しています。 追加段落:README一次情報に基づき、本リポジトリの公開範囲はドキュメントとソースに限定されます。star数やfork数はGitHubメタデータ由来の注目指標であり、機能保証やSLAを意味しません。導入判断では、READMEが示す具体コマンド・設定キー・バージョン番号を手元環境で再現し、期待する入出力が得られるかを記録してください。READMEに無い性能数値、互換マトリックス、セキュリティ監査結果は推測で補わず、issue/リリースノート/公式サイトで確認できる事実だけを採用記録に残します。
CIバッジとメタカバレッジレポート
READMEバッジ群は品質の手がかりです。testsuite.ymlとquality.ymlのGitHub Actions、Read the Docsドキュメント、PyPIバージョン、対応Pythonバージョン、Apacheライセンス、metacov.jsonエンドポイント(coveragepy.github.io/metacov-reports/latest.html)がリンクされています。分散型SNSアカウント(@coveragepy、@nedbat on hachyderm.io)へのバッジもREADMEにありますが、これらはコミュニケーションリンクであり計測機能とは無関係です。Tidelift Subscription向けEnterpriseセクションもREADMEに存在します。 追加段落:README一次情報に基づき、本リポジトリの公開範囲はドキュメントとソースに限定されます。star数やfork数はGitHubメタデータ由来の注目指標であり、機能保証やSLAを意味しません。導入判断では、READMEが示す具体コマンド・設定キー・バージョン番号を手元環境で再現し、期待する入出力が得られるかを記録してください。READMEに無い性能数値、互換マトリックス、セキュリティ監査結果は推測で補わず、issue/リリースノート/公式サイトで確認できる事実だけを採用記録に残します。
7.16.0リリースと保守状況
GitHub Releasesでは7.16.0が2026-08-28、7.15.4が2026-08-06、7.15.3が2026-08-02に公開されています。既定ブランチはmain、push日時も2026-08-28です。オープンイシュー307件は活発なメンテナンスと未解決課題の両方を示唆しますが、READMEはサポートSLAやLTS方針を述べていません。NOTICE.txtがApache 2.0の詳細条項を指すリンクとしてREADMEに載っています。
coverage runでpytestを包む最小検証
導入確認はRead the Docs Quick Startに沿います。仮想環境で`pip install coverage==7.16.0`を実行し、対象プロジェクトで`coverage run -m pytest`(またはREADME Quick Startが示す同等コマンド)を走らせます。続けて`coverage report`または`coverage html`でレポートを生成し、htmlcov/index.htmlに未実行行が期待どおり表示されるかを見ます。Python 3.15 rc1やfree-threading環境ではREADME対応表と実際のトレース結果を照合してください。セキュリティ懸念はTidelift security contact(https://tidelift.com/security)経由とREADMEに記載されています。
Apache-2.0と再配布条件
ライセンスはApache 2.0 Licenseで、NOTICE.txtが追加条項の参照先です。Apache-2.0は商用利用や改変を許容しますが、NOTICE/著作権表示の要件はNOTICE.txtを読む必要があります。READMEはTidelift経由のEnterpriseサポートを案内するのみで、セキュリティ監査結果やCVE対応SLAは提供していません。依存関係の脆弱性管理は利用者側のpip lockとCIスキャンに委ねられます。
向く場面と向かない場面
向く場面:pytest/unittestベースのPythonプロジェクトでCIにカバレッジ閾値を設けたい場合、Read the Docsの成熟したドキュメントを参照できるチーム。向かない場面:READMEに記載のないランタイム(例:README未対応の古いPython)での利用、READMEだけで完結するインストール手順を求める場合(Quick Startへのジャンプが必要)、READMEが触れない本番APMやプロファイリング代替としての利用。カバレッジ数値はテスト品質の代理指標に過ぎず、READMEもその限界については深くは述べていません。
TideliftとEnterpriseサポート経路
README For Enterprise節はTidelift Subscription経由の商用サポートを案内しています。PyPI coverageパッケージがTideliftと連携し、企業向けに単一サブスクリプションで複数OSSをカバーするモデルを説明しています。これはコミュニティ版coverage.pyの機能差を意味するものではなく、ベンダーサポート契約の販売チャネルです。セキュリティ報告もTidelift security contactに集約され、修正調整をTideliftが行うとREADMEは述べています。自社CIではGitHub Actions testsuite.yml/quality.ymlバッジの緑色と、利用PythonバージョンでのQuick Start再現をセットで確認するのが現実的です。
編集部の結論
CIでpytestと組み合わせる用途向け。`pip install coverage==7.16.0`で版を固定し、coverage.readthedocs.ioのQuick Startどおりcoverage run -m pytestを実行してhtmlレポートを生成する手順がREADMEで示される入口です。分散型SNSバッジ(@coveragepy等)はREADME装飾のみで機能とは無関係。
コミュニティノート