一般社団法人 全国個人事業主支援協会

COLUMN コラム

コマンドラインからunittestを使ってcoverageを取得する方法を解説しているページが無かったので備忘として。

pythonでunittestの書き方を知っているとすぐ使えると思います。

pythonのバージョンは3.6です。

 

カバレッジとは

エンジニアではカバレッジ=網羅率のように表現されます。

カバレッジは対象とするプログラムの「実行された行数 / プログラムの全行数」で求められる数値を指します。

SIerだと品質の指標としてカバレッジ〇%を掲げるところも多いです。

 

今回使用するライブラリ

インストールしていない場合はpipでインストールしてください。

unittest

単体テスト作成に使用するライブラリ

coverage

テストカバレッジを取得するライブラリ

 

カバレッジの取り方

流れとしては以下のようになります。

  1. unittestでpythonのテストコードを作ります
  2. coverageでテストコードを実行します
  3. coverageでカバレッジを取得します

 

テストコードの作成

unittestでテストコードを作ります。

作成した単体テストのプログラムをtest_SourceCode.pyとします。

 

テストコードの実行

unittestをcoverageから実行します。

具体的には以下のようなコマンドを実行します。

coverage run –source=. -m unittest test_SourceCode.py

 

–source

テストのカバレッジを取得する階層を指定できます。

これを指定しないとsite-packageまわりのカバレッジまで入ってくるので指定必須だと思います。

テストコードとテスト対象のコードが同パッケージ階層にある場合は「.」を指定します。

パッケージが別階層の場合はテスト対象コードの階層を指定する必要があります。

-m unittest test_SourceCode.py

テストを実行するライブラリとモジュールを指定できます。

 

テストカバレッジの取得

coverage report

先ほど実行したテストのカバレッジを取得します。

coverage report -m

テストのカバレッジに加え実行されなかった行の行番号が表示されます。

 

以上、簡単ですがunittestでのテストカバレッジの取得についてでした。

The following two tabs change content below.

新歩一 正己

初めまして。 新歩一と申します。 現在開発系のフリーランスで4年目となります。 新しいもの好きなので色々開発言語は触っております。 Web関係、業務用システム構築がメインでJava, Javascript, PHP, Pythonを使っております。 オリンピック期間は国外逃亡します。(たぶん)

この記事をシェアする

  • Twitterでシェア
  • Facebookでシェア
  • LINEでシェア