Pythonのunittestは、Pythonコードのテストを行う上で有用な機能が実装された一群のモジュールです。unittestはPythonの実行環境に含まれており、Pythonをインストールした時点で利用可能になっています。
unittestの基本的な使い方
unittestを使用する基本的な手順は以下の通りです。
- unittestをインポートする
- unittest.TestCaseを継承したクラスを作る
- 作成したクラスの中に、テストケースを記述する。テストケースは、AssertHOGE()という名称の一群のメソッドを使う。このメソッドによって一致・大小関係などなどの比較が行われる。
- unittest.main()でテストを実行する。
以下に、三つの文字列メソッドをテストするスクリプトの例を示します。
import unittest
class TestStringMethods(unittest.TestCase):
def test_upper(self):
self.assertEqual('foo'.upper(), 'FOO')
def test_isupper(self):
self.assertTrue('FOO'.isupper())
self.assertFalse('Foo'.isupper())
def test_split(self):
s = 'hello world'
self.assertEqual(s.split(), ['hello', 'world'])
# check that s.split fails when the separator is not a string
with self.assertRaises(TypeError):
s.split(2)
if __name__ == '__main__':
unittest.main()
環境変数とunittest
テストを行う際には、環境変数を設定することがあります。pytest-envは環境変数を定義したい場合に利用するもので、pytest.iniとかに環境変数を書いておけば展開してくれるので楽です。また、pytest fixtureを使えばテストの実行前に特定の処理を自動で実行することができます。これを利用して、テストの実行前に自動で環境変数を書き換えることが可能です。
以上、Pythonのunittestと環境変数の活用方法について説明しました。これらの知識を活用して、より効率的なテストコードを書くことができます。