定时单元测试,包括设置

时间:2014-07-15 15:09:19

标签: python django unit-testing testing python-unittest

如何捕获单个单元测试的时间,包括设置成本?

我有一个带有设置程序的测试基础,需要花费很多时间才能完成。我有几个测试从这个测试基础下来,我有一个装饰器,理论上应该打印出运行每个测试所需的时间:

class TestBase(unittest.TestCase):
    def setUp(self):
        # some setup procedure that takes a long time

def timed_test(decorated_test):
    def run_test(self, *kw, **kwargs):
        start = time.time()
        decorated_test(self, *kw, **kwargs)
        end = time.time()
        print "test_duration: %s (seconds)" % (end - start)
    return run_test


class TestSomething(TestBase):
    @timed_test
    def test_something_useful(self):
        # some test

现在,当我运行这些测试时,我发现我只打印测试运行时间不包括设置时间。切线上,一个相关的问题可能是:最好是处理测试框架之外的时间安排吗?

1 个答案:

答案 0 :(得分:5)

我不会重新发明方向盘并使用nose nose-timer plugin测试跑步者:

  

用于测试的计时器插件可以回答这个问题:多长时间   每次测试都需要吗?

在此处详细了解nose-timer