盆暗の学習記録

データサイエンス ,エンジニアリング,ビジネスについて日々学んだことの備忘録としていく予定です。初心者であり独学なので内容には誤りが含まれる可能性が大いにあります。

unittestでかかった時間を計測する

前にどこかで見かけたやり方をメモ。

unittestでは、各テストの前にはsetUp()が実行され、テストの後にtearDown()が実行される。

なのでその前後でtime()を呼んで、その差分を表示させる。

from time import time
import unittest

class TestStringMethods(unittest.TestCase):
    
    def setUp(self):
        self.time_begin = time()

    def tearDown(self):
        t = time() - self.time_begin
        print(f"{self.id()}: {t:.3f}s")
        
    def test_upper(self):
        self.assertEqual('foo'.upper(), 'FOO')


if __name__ == '__main__':
    unittest.main()

実行するとこんな感じになる。

 $  python unittest_time.py
__main__.TestStringMethods.test_upper: 0.000s
.
----------------------------------------------------------------------
Ran 1 test in 0.001s

OK