unittest を使用するときに各テストに費やされた時間を知るにはどうすればよいでしょうか? 質問する

unittest を使用するときに各テストに費やされた時間を知るにはどうすればよいでしょうか? 質問する

Unittest は、すべてのテストの実行に費やされた合計時間のみを提示し、各テストに費やされた時間を個別に提示しません。

unittest を使用するときに各テストのタイミングを追加するにはどうすればよいですか?

ベストアンサー1

今のところそれは不可能だと思います:翻訳: 翻訳者: python

しかし、次のようなこともできます:

import unittest
import time

class SomeTest(unittest.TestCase):
    def setUp(self):
        self.startTime = time.time()

    def tearDown(self):
        t = time.time() - self.startTime
        print('%s: %.3f' % (self.id(), t))

    def testOne(self):
        time.sleep(1)
        self.assertEqual(int('42'), 42)

    def testTwo(self):
        time.sleep(2)
        self.assertEqual(str(42), '42')

if __name__ == '__main__':
    suite = unittest.TestLoader().loadTestsFromTestCase(SomeTest)
    unittest.TextTestRunner(verbosity=0).run(suite)

結果:

__main__.SomeTest.testOne: 1.001
__main__.SomeTest.testTwo: 2.002
----------------------------------------------------------------------
Ran 2 tests in 3.003s

OK

おすすめ記事