PYTHON MEBY

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`コマンドの高度なオプションを活用してください。公式ドキュメントを参照ください。

関連記事