Pythonでカバレッジを計測
この記事では、Pythonコードのカバレッジを計測する方法について説明します。coverage.pyパッケージを使用して、コードのどの部分がテストで実行されたかを可視化し、テストの網羅性を向上させる方法を学びます。
目次
coverage.pyのインストール
coverage.pyはpipを使用してインストールできます。
pip install coverage
インストールが完了したら、コマンドラインからcoverageコマンドが使用できるようになります。
基本的な使用方法
カバレッジ計測の基本的な手順は以下の通りです。
1. coverage run <スクリプト名>
2. coverage report
1. `coverage run`コマンドでスクリプトを実行します。これにより、実行されたコードが計測されます。 2. `coverage report`コマンドでカバレッジレポートが表示されます。これは、各行が実行された割合を示すレポートです。
例:
# test_sample.py
def add(a, b):
return a + b
def test_add():
assert add(2, 3) == 5
# 実行
coverage run test_sample.py
coverage report
上記の例では、`test_add()`関数と`add()`関数のカバレッジが計測されます。
HTMLレポートの作成
より詳細なレポートを作成するには、`coverage html`コマンドを使用します。
coverage html
このコマンドを実行すると、`htmlcov`ディレクトリにHTMLレポートが作成されます。ブラウザで開いて確認できます。
特定のファイルやディレクトリの計測
特定のファイルやディレクトリのみを計測対象にするには、`-m`オプションを使用します。
coverage run -m my_module.py
coverage run -m my_package
無視するファイルやディレクトリの指定
テストコードや、計測対象外にするファイルやディレクトリを指定するには、`.coveragerc`ファイルを作成します。
[run]
omit =
*/tests/*
*/__init__.py
# .coveragerc を作成して、カバレッジ計測対象外にするファイルやディレクトリを指定する。
この設定では、`tests`ディレクトリと`__init__.py`ファイルが計測対象外となります。
ブランチカバレッジ
ブランチカバレッジを計測するには、`--branch`オプションを指定します。
coverage run --branch test_sample.py
coverage report -m
複雑なケースへの対処
複雑なケース、例えば、モジュール間の依存関係がある場合や、動的に生成されるコードがある場合は、`coverage`コマンドの高度なオプションを活用してください。公式ドキュメントを参照ください。