包含设置时间的单元测试
如何记录每个单元测试的时间,包括准备时间呢?
我有一个测试基础,它的准备过程需要花费不少时间。我有几个测试是基于这个测试基础的,并且我有一个装饰器,理论上应该能够打印出每个测试运行所花费的时间:
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 个回答
5
我不会重新发明轮子,而是会使用nose
这个测试工具,配合nose-timer
插件:
这是一个用于nosetests的计时插件,可以回答一个问题:每个测试花了多少时间?
想了解更多关于nose-timer
的信息,可以查看这里: