定时单元测试,包括设置

Que*_*lan 4 python testing django unit-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
Run Code Online (Sandbox Code Playgroud)

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

ale*_*cxe 5

我不会重新发明轮子并使用nose带有nose-timer插件的测试运行器:

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

nose-timer在这里查看更多信息: