スポンサーリンク

python unittest基礎

unittestとは

一言でいえばpythonプログラムのテスト用ツールです。

このunittestをimportしたpythonファイルにどんなテストを行うかを書き、そのファイルを実行することテストすることができます。

メリット

  • テスト用のファイルを実行することで、複数のテストを一括で行える。
  • プログラムの修正が入っても、テスト用ファイルを作っておけば、再度実行するだけですぐにバグがないか確認できる。
  • coverageモジュールを併用することで、テストして実行した行、実行していない行を確認でき、テストの網羅率がわかる
  • Mock関数を使って、テスト対象のクラスやメソッドの戻り値をダミーデータに変更してテストできる。

unittest 使い方

unittestの使い方について記載していきます。

まずはテストのテスト対象とするpythonプログラムを用意します。

Calcクラスのテストを行うTestCalcクラスを作ります。

解説

基本事項

  • unittestを行う側のクラスには、unittest.TestCaseを継承する必要がある。
  • テストする内容を、unittest.TestCaseを継承したクラスのメソッド(先頭がtest)に書く。
  • テストをするには、main文にunittest.main()を書いてファイルを実行することでテストできる。
  • assert系のメソッドの結果で、テストで問題があるか無いかを判断する。

self.assertEqual(ans, 3)の部分は,ans==3の関係であれば、正しく処理が行われていると判断してバグがないという結果をだします。

実行結果

TestCalcを実行すると上記のように実行した結果が出ます。

 

test_hiku()のself.assertEqual(ans, 1)を、(ans, 2)に変更すると、値が一致していないという想定した結果がかえって来ないので、下記のような結果になる。

テスト失敗時の実行結果

 

解説

  • ..は1つのtestメソッドを実行して、正しい処理が行われた場合に.が1つ出力される。(失敗した場合はF)
  • Ran 2 tests in 0.000sは、実行した数と実行にかかった時間。
  • FAILED (failures=1)はテスト時に問題があった処理の数。

 

テスト結果の詳細を見る

テストを実行するときに-vオプションをつけて実行することで、テスト結果が詳しくなります。

下記のテストを-vオプションをつけて実行します。

 

実行結果 -vオプション付き

 

解説

-Vオプションをつけて実行することのメリットは下記の2点です。

  • メソッドの1行目に書いたコメントがテスト結果に出力されるところです。メソッド名だけでは、どのような処理をしているかがわからないときに見やすくなります。
  • どの処理が成功、失敗したのかが最初に表示されます。

 

Python
スポンサーリンク
シェアする
trelab