0
0

Python(Django)でカバレッジレポートを作成

Last updated at Posted at 2024-09-03

はじめに

Pythonのカバレッジ測定ツール「coverage.py」を使用してカバレッジレポートを出してみました。

カバレッジとはテストの際にどのコードが実行されたかを測定し、テストがどの程度のコードをカバーしているかを示します。

開発環境

  • Windows 11
  • VS Code

1.カバレッジの計測準備

1.coverageのインストール

まず、coverageをインストールします。

pip install coverag

2.coverageの設定

プロジェクトのルートディレクトリに設定ファイル.coveragerc を作成

.coveragerc ファイルを作成する際の基本的な例

iniコードをコピーする
[run]
branch = True
source =
    myapp1
    myapp2
omit =
    */tests/*
    */migrations/*
    */admin.py

[report]
show_missing = True

[run]セクション

  • branch = True:

    この設定は、コードの分岐カバレッジ(条件分岐のカバレッジ)も測定することを意味します。通常のカバレッジ測定では各行が実行されたかどうかしか確認しませんが、branch = Trueとすると、ifelseなどの条件分岐が実際にテストされたかどうかもチェックします。

  • source =:

    カバレッジを測定する対象のソースコードのディレクトリやモジュールを指定します。ここでは、myapp1myapp2という2つのアプリケーションが対象になっています。これにより、これらのアプリケーションに対してのみカバレッジ測定が行われます。

  • omit =:

    カバレッジ測定から除外するファイルやディレクトリを指定します。ここでは以下が除外されています:

    • /tests/*: テストファイルは除外されます。通常、テストコード自体がカバレッジの対象に含まれる必要はないためです。
    • /migrations/*: Djangoのマイグレーションファイルも除外されます。これらはデータベーススキーマの変更を管理するためのもので、通常カバレッジに含める必要はありません。
    • /admin.py: Djangoの管理インターフェースを構成するadmin.pyファイルも除外されます。管理インターフェースの設定ファイルはしばしばテストの対象外とされます。

[report]セクション

  • show_missing = True:この設定により、カバレッジレポートでどの行がテストされなかったか(カバレッジが不足している部分)を表示します。これにより、どのコードがテストされていないかを簡単に把握することができます。

2.カバレッジの計測

次に、coverageを使用してテストを実行し、カバレッジを計測します。

1.カバレッジ計測の実行:

Djangoプロジェクトのルートディレクトリで、以下のコマンドを実行します。

coverage run manage.py test

これにより、Djangoのテストスイートが実行され、テストカバレッジデータが収集されます。

2.カバレッジレポートの生成:

テスト実行後、次のコマンドでカバレッジレポートを表示できます。

coverage report

このコマンドは、カバレッジ結果をターミナル上に表示します。各ファイルごとにカバーされている行数とパーセンテージが表示されます。

次のようなレポートが生成されます

Name                    Stmts   Miss  Cover   Missing
-----------------------------------------------------
myapp/views.py            50     10    80%    20-25, 30-35

3.HTMLレポートの生成:

より詳細なレポートを確認するために、HTML形式のレポートを生成することも可能です。

coverage html

これにより、htmlcovというフォルダが生成され、その中にHTMLファイルが作成されます。これをブラウザで開くと、視覚的にカバレッジ率を確認できます。

3.HTML形式のレポートを見る

生成されたhtmlcovというフォルダの中に index.html があるので、VScodeで右クリックして、
エクスプローラーで表示を選択します。

そこで、ダブルクリックしてブラウザで開くことができます。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0