Pythonのunittestフレームワークでは、テストケースごとにセットアップとシャットダウンのコードを共有することができます。しかし、テストスイート全体に対するグローバルなセットアップが必要な場合もあります。
以下に、Python unittestでグローバルなセットアップを行う方法を示します。
import unittest
# グローバル変数
feedback = False
def setFeedback(feedbackInput):
global feedback
if(feedbackInput == 'y'):
feedback = True
else:
feedback = False
class TestMain(unittest.TestCase):
@classmethod
def setUpClass(cls):
super(TestMain, cls).setUpClass()
setFeedback('y')
def test_setFeedback(self):
self.assertTrue(feedback)
if __name__ == '__main__':
unittest.main()
このコードでは、setUpClass
メソッドを使用してテストスイート全体のセットアップを行っています。このメソッドはテストスイートが開始されるときに一度だけ呼び出されます。したがって、setFeedback('y')
は一度だけ実行され、その結果はすべてのテストケースで利用できます。
このように、Python unittestでは、テストケースごとだけでなくテストスイート全体に対するセットアップも可能です。これにより、テストの実行時間を短縮することができます。