LoginSignup
4
3

More than 3 years have passed since last update.

【日記】pythonでせっかくテストコードを書いたのでカバレッジも計測してみる

Last updated at Posted at 2019-07-11

私が現在開発しているプロジェクトでは、かなりしっかりとテストコードを書いています。
ここまでしっかりとしたテストコードを書いたんなら、カバレッジとやらもかなりイイ感じになってんじゃね?と思い、今まで計測したことのないカバレッジを見てみることにしました。

私はテストコードを書くためにunittestを使用しています。
unittest --- ユニットテストフレームワーク

しかし、これだけではカバレッジを計測することはできません。
カバレッジを計測するためには別のパッケージが必要です。
今回はその名もずばりcoverageというパッケージを使いました。
Coverage.py

こちらは、私が理解できた範囲では、python3 hoge.pyのようにcoverage hoge.pyと実行すると、そのとき通ったコードの割合を記録してくれるという使い方をするカバレッジ測定ツールのようです。

開発しているプロジェクトを普通にpy main.pyと実行しただけでは当然全てのコードを通ることはありません。
従って、ユニットテストを実行するときにこのcoverageを利用してみましょう。
すなわち、いつもはこんな感じでテストをしていたところを↓

ターミナル.
> py -m unittest discover code.unit_tests

次のように変更するのです↓

ターミナル.
> coverage run -m unittest discover code.unit_tests

このようにして実行し、記録して、そのあともう一度コマンドを実行して結果を表示します。

ターミナル.
> coverage report -m

実際に下記のようにカバレッジを測定することができました。

割と注意深くテストを書いていたつもりだったんですが、一か所だけカバレッジが6割弱のモジュールがありますね。発見出来てよかった。

その後、コードの見直しを行って見事オール100を達成。
小さなプロジェクトとは言え、やはり「100」が出ると気持ちがいいものですね。


今日はこんなところで。
4
3
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
4
3