Pythonのunittestに入門してみた。

はじめに

この記事では、「Pythonのunittestの導入方法」について書いています。

恥ずかしながらPythonでテストはあまり書いてこなかったのですが、それではいけないと一念発起し、色々なテストライブラリなどを勉強する中でこの記事を書きました。

自分に向けた備忘録の意味もありますが、「Pythonを使っていてまだテストを使ったことない」や「unittest使ってみたいけど始め方が分からない」な人の一助になれば嬉しいです。

前提(環境)

以下の環境で実験をしていきます。

Pythonのunittestとは何か

Pythonコードのテストを行うための機能が実装されたモジュール(ライブラリ)です。

基本的にはPythonをインストールした時点で利用可能になっており、import unittestのようにインポートすることで利用することが可能です。

Java単体テストフレームワークであるJUnitに触発されたものであるため、使い方もJUnitとほぼ同じらしいです。

基本的な使い方

基本的な使い方は以下のような感じになります。

  • unittestをインポートする
  • unittest.TestCaseを継承したクラスを作る
    • クラス名は"TestXXX"のようにします(XXXは任意の文字列)
  • 上で作ったクラスの中にテストケースを記述する
    • クラス内の関数は"test_xxxx"のようにします(xxxxは任意の文字列)

これらを踏まえると、コードは以下のような感じになります

import unittest

class TestXXX(unittest.TestCase):
    def test_xxxx(self):
        # テストの内容を書く

実際に使ってみる

では実際にテストを書いてみます。

適当なフォルダを用意し、その中に2つのファイルを作ります。

一つはadd.pyというファイルで中は以下のように書きます。

def add_two(num):
    return num + 2

もう一つはtest_add.pyという、add.pyのテストをするファイルで、以下のように書きます。

import unittest
import add

class TestAdd(unittest.TestCase):
    def test_add_two(self):
        self.assertEqual(3, add.add_two(1))

これでコードの準備は完了です。

次に、ファイルを置いたフォルダでコマンドプロンプトを開き、以下のコマンド実行してみてください

python -m unittest

するとテストが実行されます。

.
----------------------------------------------------------------------
Ran 1 test in 0.000s

OK

これで無事unittestに入門し、テストを行うことが出来るようになりました。

おわりに

Pythonのunittestの導入方法」について解説しました。

この方法を知っておくと、「Pythonでとりあえずテストを使ってみたい」時などに役に立つかと思います。

さいごに、記事を書く上で参考にしたサイトのリンクを以下に掲載します。合わせて読んでいただくと良いかと思います。

www.python.ambitious-engineer.com