🐍
【Python】Unittestで__init__を定義したらエラーになった
事象
Pythonでテストコードを実行するためのフレームワークunittest
を使ってテストを実行した際に、
'TestPreProcess' object has no attribute '_testMethodName'
というエラーが発生した。
原因
__init__
メソッドを定義したことで、継承したクラス(unittest.TestCase)のコンストラクタを適切に呼び出せていない。
class TestSample(unittest.TestCase):
def __init__(self):
# 初期化コード
解決方法
__init__
の引数methodName
にrunTest
を指定し、スーパークラスのコンストラクタを呼び出す。
class TestSample(unittest.TestCase):
def __init__(self, methodName='runTest'):
super(TestPreProcess, self).__init__(methodName)
# 初期化コード
なお、unittestでテスト実施前に行いたい処理にはsetUp()
を使うことが推奨されている。
Discussion