当我在Python中运行unittest
时,我想访问测试所用的时间(不是每个单独的测试用例,而是整个测试)。这将显示为结果的一部分。有没有办法做到这一点,而不仅仅是解析结果字符串?
答案 0 :(得分:1)
可悲的是,不,你无法直接访问测试时间。至少没有修改一些unittest
类。
该时间以TextTestRunner.run计算,并未保存为类的成员,而是作为打印输出:
self.stream.writeln("Ran %d test%s in %.3fs" %
(run, run != 1 and "s" or "", timeTaken))
如果您覆盖TextTestRunner.run
以及在unittest.main
中调用它的方法,那么您可以访问timeTaken
变量。
解析输出文本会更容易。
此外,由于您现在可以看到用于编写该行的timeTaken
格式化语句,因此您可以无风险地解析它。