2
1

More than 3 years have passed since last update.

【備忘録】Djangoの単体テスト実行時にカバレッジを計測する

Last updated at Posted at 2020-09-25

目的

Django上で実装した単体テストが網羅出来ていない箇所を探索する為, coverageを導入してカバレッジの計測を行う.

検証

環境

導入

Djangoは既にインストール済みであることを前提とする.

$ pip install coverage

計測

全テストを実行し, 計測を行う. この時に.coverageファイルを生成される.

$ coverage run --source=. --omit='*/tests*' manage.py test

この時, 単体テストを集約している任意のディレクトリを対象外にする為, --omitオプションを使用してカバレッジの計測の対象外としている.
計測時のオプションの種類についてはhelpを参照する.

$ coverage run --help

結果

計測結果を出力する.

$ coverage report -m
Name                                                 Stmts   Miss  Cover   Missing
----------------------------------------------------------------------------------
auth/models.py                                          61      7    89%   15, 28-30, 115-116, 119
...
config/__init__.py                                       0      0   100%
...
----------------------------------------------------------------------------------
TOTAL                                                  967    207    79%

カラム名とその意味については以下の通りである. Missingは, -mオプションを使用することで出力される.

カラム名 意味
Name カバレッジ計測の対象ファイル名を指す.
Stmts Statementsの略称. 実行可能コードの行数を指す.
Miss Stmtsの中で実行されなかった行数を指す.
Cover カバレッジ(網羅率)を指す.
Missing Missの対象となった行番号を指す.

結果出力時のオプションの種類についてはhelpを参照する.

$ coverage report --help

また, HTMLやXML, JSON形式などでレポートを生成することも可能とのこと. 詳細はドキュメントに記載されている.

まとめ

Djangoの単体テスト実行時にカバレッジを計測することで, 網羅していない箇所を可視化した.

参考

2
1
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
2
1